ФорумПрограммированиеPHP для идиотов → Мой скрипт регистрации не работает, почему?

Мой скрипт регистрации не работает, почему?

  • code9

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 9 июля 2009 г. 9:46

    Пытаюсь освоить пых,и вот один из многих айсбергов

    листинг reg.php

    <?
    session_start();
    include(&quot;connect.php&quot;);


    if(!$_POST[&#39;do&#39;])
    {
    echo(&quot;<form method=\&quot;POST\&quot; action=\&quot;\&quot;)<br />
    Желаеиый ник:<div><input name=\&quot;nick\&quot; type=\&quot;text\&quot;><br />
    Пароль:<div><input name=\&quot;pass\&quot; type=\&quot;text\&quot;><br />
    Еще раз пароль<div><input name=\&quot;rpass\&quot; type=\&quot;text\&quot;><br />
    <input name=\&quot;do\&quot; type=\&quot;submit\&quot; value=\&quot;зарегистрировать\&quot;>
    </form>&quot;);
    }



    $nick=$_POST[&quot;nick&quot;];

    mysql_query(&quot;SELECT * FROM users WHERE nick=&#39;&quot;.strtolower($nick).&quot;&#39;&quot;);
    if(mysql_affected_rows()==0) {

    if($_POST[&#39;do&#39;])
    {
    if($_POST[&#39;pass&#39;] != $_POST[&#39;rpass&#39;])
    {
    echo &quot;Введенные пароли не совпадают&quot;;
    exit();
    }
    }


    if($_POST[&#39;pass&#39;] !=&#39;&#39; AND $_POST[&#39;rpass&#39;] !=&#39;&#39;)
    {
    $pass = $_POST[&#39;pass&#39;];

    $r=&quot;INSERT INTO users(nick,password) VALUES(&#39;&quot;.strtolower($nick).&quot;&#39;,&#39;&quot;.md5($pass).&quot;&#39;)&quot;;

    mysql_query($r);
    if($r)
    {
    echo &quot;регистрация прошла успешно&quot;;
    }
    }
    } else {
    echo &quot;Пользователь с таким ником уже зарегистрирован&quot;;
    }



    session_destroy();

    ?>




    avt.php

    <?
    session_start();
    include(&quot;connect.php&quot;);


    if(!$_POST[&#39;do&#39;])
    {
    echo(&quot;<form method=\&quot;POST\&quot; action=\&quot;\&quot;)<br />
    Ник:<div><input name=\&quot;nick\&quot; type=\&quot;text\&quot;><br />
    Пароль:<div><input name=\&quot;pass\&quot; type=\&quot;password\&quot;><br />
    <input name=\&quot;do\&quot; type=\&quot;submit\&quot; value=\&quot;Войти\&quot;><br />
    <a href=\&quot;reg.php\&quot;>Регистрация</a>
    </form>&quot;);
    }

    if(isset($_POST[&quot;nick&quot;]) &amp;&amp; isset($_POST[&quot;pass&quot;]))
    {
    $login=mysql_real_escape_string($_POST[&quot;nick&quot;]);
    $pass=md5($_POST[&quot;pass&quot;]);

    $sr=&quot;SELECT &#39;id&#39;
    FROM &#39;users&#39;
    WHERE &#39;nick&#39;={$login} AND password={$pass}
    LIMIT=1&quot;;

    $zap=mysql_query($sr);
    if(mysql_num_rows($zap)==1)
    {
    $mas=mysql_fetch_assoc($zap);
    $_SESSION[&#39;user_id&#39;]=$mas[&#39;id&#39;];
    echo &quot;HI $login&quot;;

    } else {
    echo &quot;такой логин не найден&quot;;
    }
    }



    ?>


    ПОЧЕМУ НЕ РАБОТАЕТ??
  • md5

    Сообщения: 11951 Репутация: N Группа: в ухо
  • Chikey

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 9 июля 2009 г. 9:53, спустя 5 минут 19 секунд

    сейчас произойдет просвящение.=)

    echo(&quot;&lt;form method=\&quot;POST\&quot; action=\&quot;\&quot;)&lt;br />
    Ник:&lt;div>&lt;input name=\&quot;nick\&quot; type=\&quot;text\&quot;>&lt;br />
    Пароль:&lt;div>&lt;input name=\&quot;pass\&quot; type=\&quot;password\&quot;>&lt;br />
    &lt;input name=\&quot;do\&quot; type=\&quot;submit\&quot; value=\&quot;Войти\&quot;>&lt;br />
    &lt;a href=\&quot;reg.php\&quot;>Регистрация&lt;/a>
    &lt;/form>&quot;);

    это очень хорошо, когда острое зрение и ты видишь все кавычки. Но.. есть еще один способ.

    $content = &lt;&lt;&lt;ECHO
    текст $var - а это переменная, она интерполируется
    ECHO;

    Вместо ECHO юзай любое слово. Не менее удобно для конкатенации.

    Говорю это потому что и так нерационального кода слишком много стало.



    И еще таки лучше использовать спец оболочки для работы с базой, не напрягает разве каждый раз mysql_ писать?=)
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 9 июля 2009 г. 9:55, спустя 2 минуты 7 секунд

    а еще лучше, имхо:


    echo &#39; блаблабла <a href=&quot;&quot;>ссылка</a>&#39;;
    {+++25+++} то есть использование разных кавычек, и не надо экранов
    adw/0
  • rider-sx

    Сообщения: 2717 Репутация: N Группа: Адекваты

    Spritz 9 июля 2009 г. 10:06, спустя 10 минут 58 секунд


    а еще лучше, имхо:


    echo &#39; блаблабла <a href=&quot;&quot;>ссылка</a>&#39;;
    {+++25+++} то есть использование разных кавычек, и не надо экранов
    Истину глаголишь ;)
  • Chikey

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 9 июля 2009 г. 10:22, спустя 16 минут 1 секунду

    adw0rd, так и делаю, только чтобы вставить переменную надо еще больше напрягаться - $q= &#39;qwe&#39;.$qwe.&#39;qwe&#39;;
    Поэтому лучший выход - не писать на пхп
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 9 июля 2009 г. 10:24, спустя 2 минуты 17 секунд

    Chikey, а я не напрягаюсь, мне нравиться так вставлять переменные, сразу вижу куда и что вставил {+++24+++} я люблю знать кому и куда вставляю ;)
    adw/0
  • rider-sx

    Сообщения: 2717 Репутация: N Группа: Адекваты

    Spritz 9 июля 2009 г. 10:47, спустя 23 минуты 2 секунды


    Chikey, а я не напрягаюсь, мне нравиться так вставлять переменные, сразу вижу куда и что вставил {+++24+++} я люблю знать кому и куда вставляю ;)
    Ахуенно сказал )))
  • code9

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 9 июля 2009 г. 10:58, спустя 10 минут 58 секунд

    Спасибо конечно за замечания, исправлять буду.Но вы не ответили на мой вопрос… Авторизация (php + mysql) и запоминание пользователей для начинающих-я это читал и когда писал свой скрипт ориентировался. Если не сложно покажите мои ошибки из-зи которых скрипт просто свалка символов а не программа(
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 9 июля 2009 г. 11:00, спустя 1 минуту 51 секунду

    ПОЧЕМУ НЕ РАБОТАЕТ??
    а что не работает, что выводит и т.д.
    adw/0
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 9 июля 2009 г. 11:02, спустя 2 минуты 15 секунд

    сразу вижу 1024 ошибку sql

    WHERE &#39;nick&#39;={$login} AND password={$pass}

    кавычки забыл
    WHERE `nick`=&#39;{$login}&#39; AND `password`=&#39;{$pass}&#39;
  • code9

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 9 июля 2009 г. 11:10, спустя 8 минут 25 секунд

    на скрипте avt.php вот эта ошибка &quot;Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\sbmo\avt.php on line 27
    такой логин не найден.&quot;   Может моя регистрация неверно сконструированна?

    я не понимаю какой из скриптов не робит, один не регит или другой не пускает?
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 9 июля 2009 г. 11:12, спустя 1 минуту 44 секунды

    такой логин не найден.&quot; Может моя регистрация неверно сконструированна?
    а ты зайди в таблицу где хранятся пользователи твои и посмотри, либо через mysql-console, либо через phpMyAdmin например {+++108+++} 1. Исправь ошибки как подсказал мавр!
    2. Зачем тебе лимит?
        $sr=&quot;SELECT &#39;id&#39;
    FROM &#39;users&#39;
    WHERE &#39;nick&#39;={$login} AND password={$pass}
    LIMIT=1&quot;;
    adw/0
  • code9

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 9 июля 2009 г. 11:13, спустя 23 секунды


    такой логин не найден.&quot; Может моя регистрация неверно сконструированна?
    а ты зайди в таблицу где хранятся пользователи твои и посмотри, либо через mysql-console, либо через phpMyAdmin например
    да рега вроде работает &quot;test dbe92f4bb8b238d67cf482312d13dba8&quot; вот такую запись скрипт регистрации сделал
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 9 июля 2009 г. 11:17, спустя 4 минуты 21 секунду

    2. Зачем тебе лимит?

    мы это с сапом обсуждали с лимитом быстрее на тысячные доли секунды

Пожалуйста, авторизуйтесь, чтобы написать комментарий!