За последние 24 часа нас посетили 17388 программистов и 1264 робота. Сейчас ищут 1605 программистов ...

Сохранение куки

Тема в разделе "PHP и базы данных", создана пользователем Ezhevsky, 8 май 2020.

  1. Ezhevsky

    Ezhevsky Активный пользователь

    С нами с:
    2 апр 2020
    Сообщения:
    87
    Симпатии:
    1
    Добрый день всем, интересует вопрос, сделал форму авторизации но она выдаёт ошибку, то есть не верно что-то пишу, проверил несколько раз, не работает всё равно, подключение к базе есть, в чем может быть проблема?

    Код (Text):
    1. <?php
    2.  
    3. if (!isset($COOKIE['user_id'])) {
    4.     if (isset($_POST['autorization'])) {
    5.         $login = htmlspecialchars($_POST['alogin']);
    6.         $password = htmlspecialchars($_POST['apassword']);
    7.  
    8.         if (!empty($login)) {
    9.             if (!empty($password)) {
    10.                 $query = "SELECT `user_id` , `login` FROM `fd_user` WHERE login = '$alogin' AND password = SHA('$apassword')";
    11.                 $data = mysqli_query($dbc, $query);
    12.                 if (mysqli_num_rows($data) == 1) {
    13.                     $row = mysqli_fetch_assoc($data);
    14.                     setcookie('login', $row['alogin'], time() + (60*60*24*30));
    15.                 }
    16.                 else {
    17.                     $error = '<div class="alert alert-danger" role="alert">Вы ввели не верный пароль или логин!</div>';
    18.                 }
    19.             }
    20.             else {
    21.                 $error = '<div class="alert alert-danger" role="alert">Вы не ввели пароль!</div>';
    22.             }
    23.         }
    24.         else {
    25.             $error = '<div class="alert alert-danger" role="alert">Вы не ввели логин!</div>';
    26.         }
    27.     }
    28.  
    29. }
    30.  
    31. ?>
    32.  
    33. <form method="POST" action="" id="auto">
    34.     <div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
    35.         <div class="modal-dialog modal-dialog-centered" role="document">
    36.             <div class="modal-content">
    37.                 <div class="modal-header">
    38.                     <h5 class="modal-title" id="exampleModalCenterTitle">Авторизация</h5>
    39.                 </div>
    40.                 <div class="modal-body">
    41.                     <div class="form-group">
    42.                         <label for="exampleInputLogin">Ваш логин</label>
    43.                         <input type="text" name="alogin" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Введите ваш логин">
    44.                         <small id="loginHelp" class="form-text text-muted">Введите ваш уже <b>зарегистрированный</b> логин.</small>
    45.                       </div>
    46.                       <div class="form-group">
    47.                         <label for="exampleInputLogin">Ваш пароль</label>
    48.                         <input type="text" name="apassword" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Введите ваш пароль">
    49.                         <small id="loginHelp" class="form-text text-muted">Введите ваш пароль.</small>
    50.                       </div>
    51.                 </div>
    52.                 <div class="modal-footer">
    53.                     <button type="button" class="btn btn-light" data-dismiss="modal">Закрыть</button>
    54.                     <button type="submit" name="autorization" class="btn btn-success">Авторизация</button>
    55.                 </div>
    56.             </div>
    57.         </div>
    58.     </div>
    59. </form>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    первое условие true / false ?
     
  3. Ezhevsky

    Ezhevsky Активный пользователь

    С нами с:
    2 апр 2020
    Сообщения:
    87
    Симпатии:
    1
    Только учусь, по этому не понял сути вопроса, не выставлял значения такие даже в голове.
     
  4. Ezhevsky

    Ezhevsky Активный пользователь

    С нами с:
    2 апр 2020
    Сообщения:
    87
    Симпатии:
    1
    Исправил ошибку в переменной, из-за которой меня посылало, теперь пишет:

    Warning: Cannot modify header information - headers already sent by (output started at O:\home\test2.ru\www\index.php:8) in O:\home\test2.ru\www\include\modal.php on line 14
    Warning: Cannot modify header information - headers already sent by (output started at O:\home\test2.ru\www\index.php:8) in O:\home\test2.ru\www\include\modal.php on line 15
    THE BRAVE

    Код (Text):
    1. setcookie('user_id', $row['user_id'], time() + (60*60*24*30));
    2. setcookie('login', $row['login'], time() + (60*60*24*30));
    Вот 14 и 15 строки.
     
  5. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Ezhevsky, ты устанавливаешь куки уже после того как произошёл вывод чего либо в браузер, следовательно и заголовки уже отправлены.
    Почитай механизм работы печенек.
    Вот тебе дословный перевод ошибки.
     
  6. Ezhevsky

    Ezhevsky Активный пользователь

    С нами с:
    2 апр 2020
    Сообщения:
    87
    Симпатии:
    1
    Посмотрел, что-то попытался поправить, не понимаю всё равно в чём трубл ...
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Ezhevsky браузер и веб сервер общается по протоколу HTTP, если просто, то он разделён на заголовки и содержимое,
    если ты отправил содержимое, то заголовки уже ушли и их изменять нельзя.
    Тут пишет, что ты отправил содержимое в том файле на 8 строке, а после этого
    попытался изменить заголовки, вот тут и ошибка, их нужно было менять до отправки содержимого.
    Cookie прописываются в заголовках.

    https://www.php.net/manual/ru/function.setcookie
    https://www.php.net/manual/ru/ref.outcontrol.php
     
  9. SibBear

    SibBear Новичок

    С нами с:
    4 апр 2020
    Сообщения:
    127
    Симпатии:
    7
    открой скрипт нотпадом++, вкладка encoding
    посмотри кодировку файла, возможно у тебя кодировка UTF-8 BOM
    должно быть без BOM просто UTF-8