Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите сделать регистрацию на сайте
 
 автор: admin   (04.06.2008 в 14:39)   письмо автору
 
 

помогите сделать регистрацию на сайте плиз, сделал сайт люди требую регистрацию, незнаю как сделать .....

   
 
 автор: t3ma   (04.06.2008 в 16:23)   письмо автору
 
   для: admin   (04.06.2008 в 14:39)
 

Регистрация делается с какой-то определенной целью, например для того чтобы открыть дополнительные возможности зарегестрированного пользователя к скрытой информации на сайте и т.д.

У вас какая цель ?

   
 
 автор: SiM(R)   (04.06.2008 в 17:43)   письмо автору
 
   для: t3ma   (04.06.2008 в 16:23)
 

Ну вот небольшой скриптик, прошу не судить строго, ибо я только учусь ):
окно регистрации, ну типа ввода логина и пароля:
regist.php

<?php
    
echo '
        <div align=center><h1 class=admin>Регистрация</h1></center></div>
        <blockquote><p align=center>'
;
        if (
$_GET['error']==4) echo '<span class=error>Пользователь с таким именем уже существует.<br>
                                         Попробуйте другое имя</span>'
;
           if (
$_GET['error']==5) echo '<span class=error>Введите имя пользователя. Оно не может быть пустым<br></span>';
    echo 
'
        <table align=left width=400 border=0>
        <tr>
            <td align=right width=250><br>
                Логин: <br><br>
            </td>
            <td align=center><br>
                <form action="add_user.php" method=post>
                <input type=text name=login><br><br>
            </td>
        </tr>
        <tr>
            <td align=right>
                   Пароль:<br><br>
            </td>
            <td align=center>
                <input type=password name=pass1><br><br>
            </td>
         </tr>
         <tr>
            <td align=right>
                   Пароль еще раз:<br><br>
            </td>
            <td align=center>
                <input type=password name=pass2><br>'
;
                if (
$_GET['error']==3) echo '<span class=error>Пароли не совпадают!</span>';
    echo 
'
                <br>
            </td>
         </tr>
         <tr>
            <td align=right>
                   E-mail:<br><br>
            </td>
            <td align=center>
                <input type=text name=mail><br><br>
            </td>
         </tr>
         <tr>
             <td colspan=2 align=right valign=middle>
                 <input type=hidden name=reg value="1">
                 <input type=submit value=Зарегистрироваться>
                 </form>
             </td>
         </tr>
         </table>
         '
;


?>


файл записи информации в БД : add_user.php


<?php

require('mysql.php');

     if (
$_POST['pass1']!==$_POST['pass2']) exit(header("location:regist.php?error=3")); // если не совпадают пароли
     
if (!$_POST['login']) exit(header("location:regist.php?error=5"));


     
$login=htmlspecialchars($_POST['login']);
     
$pass=htmlspecialchars($_POST['pass1']);
     
$mail=htmlspecialchars($_POST['mail']);

     
$query="(SELECT COUNT(*) FROM users WHERE name='$login')";
     
$us=mysql_query($query);
     if (!
$us) exit(mysql_error());
     
$us1=mysql_fetch_row($us);

     if (
$us1[0]==1) exit(header("location:regist.php?error=4"));  //если есть такой пользователь
     
else
     {
         
$query="INSERT INTO users VALUES (0,'".$login."','".$pass."','".$mail."','клиент')";
         if (!
mysql_query($query)) exit(mysql_error());
         
setcookie("user",$login,time()+600);
         
setcookie("pass",$pass,time()+600);
         exit(
header("location:index.php"));
     }

?>

   
 
 автор: KPETuH   (05.06.2008 в 05:22)   письмо автору
 
   для: SiM(R)   (04.06.2008 в 17:43)
 

исходя из вашего скрипта, можно зарегистрировать пользователя без пароля и мыла+пароль храниться в куках.... помоему не очень хорошо...
+ не вижу у вас обработку данных на sql инекции перед занесением в базу...

   
 
 автор: SiM(R)   (05.06.2008 в 06:33)   письмо автору
 
   для: KPETuH   (05.06.2008 в 05:22)
 

Да, все плохо. Но этой мой первый скрипт на регистрацию, так что много я не предусмотрел ).
Особенно с пустым паролем это конечно забавно, хотя пусть это будет на совести пользователей, они ведь сами сочиняют свой пароль.

Если не сложно ответьте на 2 вопроса:
1) почему не безопасно хранить пароль в куках? Куки храняться на машине пользователя... А иначе ведь нельзя организовать "запоминание" сайтом пользователя. В результате пользователю придется постоянно авторизовываться.

2) А функции htmlspecialchars() недостаточно для предотвращения SQL-инъекций?

   
 
 автор: KPETuH   (05.06.2008 в 07:20)   письмо автору
 
   для: SiM(R)   (05.06.2008 в 06:33)
 

1. потому что на компьютере пользователя могут быть всякие троянчики и другие вредоносные програмки которые эти пароли могут выдернуть и использовать в своих целях, лучше всего не хранить пароли а ккакой-то достаточно сложный идентификатор пользователя, ну а уж если пароль то в зашифрованном виде как минимум...
2. htmlspecialchars() предотвращает вывод в браузер всякой гадости :), от sql-инекций не защищает :)

   
 
 автор: mihdan   (04.06.2008 в 17:19)   письмо автору
 
   для: admin   (04.06.2008 в 14:39)
 

Авторизация

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования