За последние 24 часа нас посетили 18967 программистов и 1617 роботов. Сейчас ищут 1028 программистов ...

Где ошибка в коде авторизации?

Тема в разделе "PHP для новичков", создана пользователем LAlexS, 23 мар 2011.

  1. LAlexS

    LAlexS Активный пользователь

    С нами с:
    12 авг 2010
    Сообщения:
    179
    Симпатии:
    0
    Адрес:
    Екатеринбург
    Код брал из книги, но немного переработал под себя. Ни фига не работает. Но я в упор не вижу ошибки.

    Код (Text):
    1. <?php
    2. session_start();
    3. include ("connect_db.php");
    4.  
    5. if ($userid && $password)
    6. {
    7.  
    8.   $query = mysql_query ("select * from users where phone='$userid' and pass='$password'");
    9.   if (mysql_num_rows($query) >0 )
    10.   {
    11.     $valid_user = $userid;
    12.     session_register("valid_user");
    13.   }
    14. }
    15.  
    16. ?>
    17.  
    18. <?php
    19.  
    20.   if (session_is_registered("valid_user"))
    21.   {
    22.     echo "Вы вошли как: $valid_user <br>";
    23.   }
    24.   else
    25.   {
    26.     if (isset($userid))
    27.     {
    28.       echo "Не получается войти";
    29.     }
    30.     else
    31.     {
    32.       echo "Вы не вошли.<br>";
    33.     }
    34.  
    35.     echo "<form method=post action=\"listofgoods.php\">";
    36.     echo "<table>";
    37.     echo "<tr><td>Логин:</td>";
    38.     echo "<td><input type=text name=userid></td></tr>";
    39.     echo "<tr><td>Пароль:</td>";
    40.     echo "<td><input type=password name=password></td></tr>";
    41.     echo "<tr><td colspan=2 align=center>";
    42.     echo "<input type=submit value=\"Войти\"></td></tr>";
    43.     echo "</table></form>";
    44.   }
    45.  
    46. ?>
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    книжка старовата у Вас. Вместо $userid и $password придется использовать $_POST['userid'] и $_POST['password']

    Плюс session_register() и session_is_registered() устаревшие функции. Используйте массив $_SESSION
     
  3. LAlexS

    LAlexS Активный пользователь

    С нами с:
    12 авг 2010
    Сообщения:
    179
    Симпатии:
    0
    Адрес:
    Екатеринбург
    Спасибо! Книженция и правда оказалась староватой.

    Вот работающий код:

    Код (Text):
    1. session_start();
    2. include ("connect_db.php");
    3.  
    4. if (isset($_POST['userid']) && isset($_POST['password']))
    5. {
    6.     $userid = $_POST['userid'];
    7.   $password = $_POST['password'];
    8.  
    9.   $query = mysql_query ("select * from users where phone='$userid' and pass='$password'");
    10.   if (mysql_num_rows($query) >0 )
    11.   {
    12.     $valid_user = $userid;
    13.     $_SESSION['valid_user'] = $userid;
    14.   }
    15. }
    16.  
    17.   if (isset($_SESSION['valid_user']))
    18.   {
    19.     echo "Вы вошли как: ".$_SESSION['valid_user']." <br>";
    20.   }
    21.   else
    22.   {
    23.     if (isset($userid))
    24.     {
    25.       echo "Не получается войти";
    26.     }
    27.     else
    28.     {
    29.       echo "Вы не вошли.<br>";
    30.     }
    31.  
    32.     echo "<form method=post action=\"listofgoods.php\">";
    33.     echo "<table>";
    34.     echo "<tr><td>Логин:</td>";
    35.     echo "<td><input type=text name=userid></td></tr>";
    36.     echo "<tr><td>Пароль:</td>";
    37.     echo "<td><input type=password name=password></td></tr>";
    38.     echo "<tr><td colspan=2 align=center>";
    39.     echo "<input type=submit value=\"Войти\"></td></tr>";
    40.     echo "</table></form>";
    41.   }
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    LAlexS Следующий шаг - обработка пришедших от пользователя данных
    Т.е. вместо простого присваивания $userid = $_POST['userid']; данные необходимо обработать (поищите на форуме). Плюс в запросе использовать mysql_real_escape_string
     
  5. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Подскажите по какой лучше книжке изучать php??
     
  6. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула