ФорумПрограммированиеPHP для идиотов → Не могу понять где ошибка

Не могу понять где ошибка

  • Ramill

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

    Spritz 21 декабря 2012 г. 1:30

    Всем доброго времени суток…. Скачал с этого сайта пример регистрации и авторизации,при тестировании login.php выдаёт ошибку. ну ошибки у меня не показывает, не могу всё ещё правильно настроить php.ini в ubuntu… перечитал весь код, вроде бы всё верно…. НО….короче вот код:

    <?php

    session_start();

    include (&#39;mysql.php&#39;);

    if (isset($_GET[&#39;logout&#39;]))
    {
    if (isset($_SESSION[&#39;user_id&#39;]))
    unset($_SESSION[&#39;user_id&#39;]);

    setcookie(&#39;login&#39;, &#39;&#39;, 0, &quot;/&quot;);
    setcookie(&#39;password&#39;, &#39;&#39;, 0, &quot;/&quot;);
    // и переносим его на главную
    header(&#39;Location: index.php&#39;);
    exit;
    }

    if (isset($_SESSION[&#39;user_id&#39;]))
    {
    // юзер уже залогинен, перекидываем его отсюда на закрытую страницу

    header(&#39;Location: closed.php&#39;);
    exit;

    }



    if (!empty($_POST))
    {
    $login = (isset($_POST[&#39;login&#39;])) ? mysql_real_escape_string($_POST[&#39;login&#39;]) : &#39;&#39;;

    $query = &quot;SELECT `salt`
    FROM `users`
    WHERE `login`=&#39;{$login}&#39;
    LIMIT 1&quot;;
    $sql = mysql_query($query) or die(mysql_error());

    if (mysql_num_rows($sql) == 1)
    {
    $row = mysql_fetch_assoc($sql);

    // итак, вот она соль, соответствующая этому логину:
    $salt = $row[&#39;salt&#39;];

    // теперь хешируем введенный пароль как надо и повторям шаги, которые были описаны выше:
    $password = md5(md5($_POST[&#39;password&#39;]) . $salt);

    // и пошло поехало…

    // делаем запрос к БД
    // и ищем юзера с таким логином и паролем

    $query = &quot;SELECT `id`
    FROM `users`
    WHERE `login`=&#39;{$login}&#39; AND `password`=&#39;{$password}&#39;
    LIMIT 1&quot;;
    $sql = mysql_query($query) or die(mysql_error());

    // если такой пользователь нашелся
    if (mysql_num_rows($sql) == 1)
    {
    // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)

    $row = mysql_fetch_assoc($sql);
    $_SESSION[&#39;user_id&#39;] = $row[&#39;id&#39;];


    // если пользователь решил &quot;запомнить себя&quot;
    // то ставим ему в куку логин с хешем пароля

    $time = 86400; // ставим куку на 24 часа

    if (isset($_POST[&#39;remember&#39;]))
    {
    setcookie(&#39;login&#39;, $login, time()+$time, &quot;/&quot;);
    setcookie(&#39;password&#39;, $password, time()+$time, &quot;/&quot;);
    }

    // и перекидываем его на закрытую страницу
    header(&#39;Location: closed.php&#39;);
    exit;

    // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
    }
    else
    {
    die(&#39;Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию. — <a href=&quot;login.php&quot;>Авторизоваться</a>&#39;);
    }
    }
    else
    {
    die(&#39;пользователь с таким логином не найден, даём ссылку на повторную авторизацию. — <a href=&quot;login.php&quot;>Авторизоваться</a>&#39;);
    }
    }

    print &#39;
    <form action=&quot;login.php&quot; method=&quot;post&quot;>
    <table>
    <tr>
    <td>Логин:</td>
    <td><input type=&quot;text&quot; name=&quot;login&quot; /></td>
    </tr>
    <tr>
    <td>Пароль:</td>
    <td><input type=&quot;password&quot; name=&quot;password&quot; /></td>
    </tr>
    <tr>
    <td>Запомнить:</td>
    <td><input type=&quot;checkbox&quot; name=&quot;remember&quot; /></td>
    </tr>
    <tr>
    <td></td>
    <td><input type=&quot;submit&quot; value=&quot;Авторизоваться&quot; /></td>
    </tr>
    </table>
    </form>
    &#39;;

    ?>

    Помогите пожалуйста! Заранее спасибо:)
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 21 декабря 2012 г. 4:24, спустя 2 часа 54 минуты 21 секунду

    что, блять, ты хочешь? чем именно получаемый тобой результат отличается от ожидаемого? почему так сложно это указать вместо абстрактных хныканий &quot;уменяничегонеполучаетсяпамагите&quot; и описания эпизодов из своей жизни &quot;яскачалскриптаоннеработает&quot;? почему так сложно понять, что нет рабочих и нерабочих скриптов, а есть скрипты которые работают как тебе нужно и работают иначе чем тебе нужно?
    не всё полезно, что в swap полезло
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 21 декабря 2012 г. 4:39, спустя 15 минут 5 секунд

    И, ЧСХ, автор сливает тему.
    Автор, куда ты делся? Объясни нормально, что ты хотел.
    не всё полезно, что в swap полезло
  • Ramill

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

    Spritz 21 декабря 2012 г. 6:49, спустя 2 часа 9 минут 48 секунд

    Всё, проблему решил сам! Спасибо за реакцию:) Ошибка была в инклюде….

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