Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: не могу зарегестрировать пользователя
Форумы портала PHP.SU » PHP » Программирование на PHP » не могу зарегестрировать пользователя

Страниц (1): [1]
 

1. lancer5610 - 18 Декабря, 2010 - 15:17:34 - перейти к сообщению
Здраствуйте!!! подскажите пожалуйста почему при авторизации вечно выводит пароль не верен..? хотя я уверен что ввожу правильные значения... даже когда пустые значения ввожу, то все равно пароль не верен, хотя должно выдавать логин или пароль не указан... Целый день ломаю голову и что то ни как не могу понять...

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. echo '<a href="zap.php">zapis</a><br><bt>';
  3. include ("dbparam.php");
  4. $link = mysql_connect($dbserver, $dbuser, $dbpass) or die('ne mogy');
  5. mysql_select_db($db, $link) or die ('Не могу выбрать БД');
  6. if (md5(crypt ($_SESSION[user],$_SESSION[password]))!=$_SESSION[uid])
  7. {
  8.    if (!$_POST['do']){
  9.        
  10.            echo '<a href="registration.php">Регистрация</a><br><br>
  11.            <form method="post" name="voit"><br>
  12.            <input type="text" name="login"><br>
  13.            <input type="password" name="password"><br>
  14.            <input type="submit" name="do" value="Войти">
  15.            </form>';}
  16.        
  17.    else {
  18.    if ($_POST['do']){
  19.            $login=$_POST['login'];
  20.            $password=$_POST['password'];
  21.            if ($login='' or $password=''){
  22.                echo 'логин или пароль нe указан';}
  23.            else
  24.                {
  25.                $zapros=mysql_query("SELECT * FROM users WHERE nick='".$login."' AND password='".md5($password)."'");
  26.                    if (mysql_num_rows($zapros)===1)
  27.                    {
  28.                        $r=mysql_fetch_array($zapros);
  29.                        $_SESSION['user']=$r['nick'];
  30.                        $_SESSION['password']=$r['password'];
  31.                        $_SESSION['sid']=md5(crypt($r['nick'],$r['password']));
  32.                        @Header("Location: index.php");}
  33.                                        else {echo 'пароль не верен';}}}}
  34. }
  35. else
  36. {
  37.    echo "privet {$r['nick']}";}
  38. ?>
2. Михаил - 18 Декабря, 2010 - 15:32:51 - перейти к сообщению
У меня подобная проблема была. Выяснилось, что проблема связана с кодировкой.
Попробуйте строку 34. Вашего кода заменить на следующий:
CODE (htmlphp):
скопировать код в буфер обмена
  1.      else {echo "SELECT * FROM users WHERE nick='".$login."' AND password='".md5($password)."'";}}}}


если проблемы всё-таки в кодировке, с помощью iconv преобразуйте её
3. OrmaJever - 18 Декабря, 2010 - 16:16:40 - перейти к сообщению
переменые $login и $password в запросе не определены.
4. lancer5610 - 18 Декабря, 2010 - 17:24:55 - перейти к сообщению
OrmaJever пишет:
переменые $login и $password в запросе не определены.


Что то не понял... Как это они не определены? строка 20 и 21... там они и определены и там им присваиваються значения из форм...
Поясните пожалуйста...
5. garvey - 18 Декабря, 2010 - 17:25:11 - перейти к сообщению
Очень страшный код. Ошибки:
1. if ($login = '' or $password = '') => if ($login == '' or $password == '')
2. Экранируйте запросы. mysql_real_escape_string()
3. И многое другое.

 

Powered by ExBB FM 1.0 RC1