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

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

  • Ramill

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

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

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

    <?php

    session_start();

    include ('mysql.php');

    if (isset($_GET['logout']))
    {
    if (isset($_SESSION['user_id']))
    unset($_SESSION['user_id']);

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

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

    header('Location: closed.php');
    exit;

    }



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

    $query = "SELECT `salt`
    FROM `users`
    WHERE `login`='{$login}'
    LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());

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

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

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

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

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

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

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

    $row = mysql_fetch_assoc($sql);
    $_SESSION['user_id'] = $row['id'];


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

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

    if (isset($_POST['remember']))
    {
    setcookie('login', $login, time()+$time, "/");
    setcookie('password', $password, time()+$time, "/");
    }

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

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

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

    ?>

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

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

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

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

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

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

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

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

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

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

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