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

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

  • code9

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

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

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

    листинг reg.php

    <?
    session_start();
    include("connect.php");


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



    $nick=$_POST["nick"];

    mysql_query("SELECT * FROM users WHERE nick='".strtolower($nick)."'");
    if(mysql_affected_rows()==0) {

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


    if($_POST['pass'] !='' AND $_POST['rpass'] !='')
    {
    $pass = $_POST['pass'];

    $r="INSERT INTO users(nick,password) VALUES('".strtolower($nick)."','".md5($pass)."')";

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



    session_destroy();

    ?>




    avt.php

    <?
    session_start();
    include("connect.php");


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

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

    $sr="SELECT 'id'
    FROM 'users'
    WHERE 'nick'={$login} AND password={$pass}
    LIMIT=1";

    $zap=mysql_query($sr);
    if(mysql_num_rows($zap)==1)
    {
    $mas=mysql_fetch_assoc($zap);
    $_SESSION['user_id']=$mas['id'];
    echo "HI $login";

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



    ?>


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

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

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

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

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

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

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

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

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

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



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

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

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

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


    echo ' блаблабла <a href="">ссылка</a>';
    Спустя 25 сек.
    то есть использование разных кавычек, и не надо экранов
    adw/0
  • rider-sx

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

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


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


    echo ' блаблабла <a href="">ссылка</a>';
    Спустя 25 сек.
    то есть использование разных кавычек, и не надо экранов
    Истину глаголишь ;)
  • Chikey

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

    WHERE 'nick'={$login} AND password={$pass}

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

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

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

    на скрипте avt.php вот эта ошибка "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
    такой логин не найден."   Может моя регистрация неверно сконструированна?

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

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

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

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

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

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


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

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

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

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

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

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