Добрый день всем, интересует вопрос, сделал форму авторизации но она выдаёт ошибку, то есть не верно что-то пишу, проверил несколько раз, не работает всё равно, подключение к базе есть, в чем может быть проблема? Код (Text): <?php if (!isset($COOKIE['user_id'])) { if (isset($_POST['autorization'])) { $login = htmlspecialchars($_POST['alogin']); $password = htmlspecialchars($_POST['apassword']); if (!empty($login)) { if (!empty($password)) { $query = "SELECT `user_id` , `login` FROM `fd_user` WHERE login = '$alogin' AND password = SHA('$apassword')"; $data = mysqli_query($dbc, $query); if (mysqli_num_rows($data) == 1) { $row = mysqli_fetch_assoc($data); setcookie('login', $row['alogin'], time() + (60*60*24*30)); } else { $error = '<div class="alert alert-danger" role="alert">Вы ввели не верный пароль или логин!</div>'; } } else { $error = '<div class="alert alert-danger" role="alert">Вы не ввели пароль!</div>'; } } else { $error = '<div class="alert alert-danger" role="alert">Вы не ввели логин!</div>'; } } } ?> <form method="POST" action="" id="auto"> <div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalCenterTitle">Авторизация</h5> </div> <div class="modal-body"> <div class="form-group"> <label for="exampleInputLogin">Ваш логин</label> <input type="text" name="alogin" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Введите ваш логин"> <small id="loginHelp" class="form-text text-muted">Введите ваш уже <b>зарегистрированный</b> логин.</small> </div> <div class="form-group"> <label for="exampleInputLogin">Ваш пароль</label> <input type="text" name="apassword" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Введите ваш пароль"> <small id="loginHelp" class="form-text text-muted">Введите ваш пароль.</small> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-light" data-dismiss="modal">Закрыть</button> <button type="submit" name="autorization" class="btn btn-success">Авторизация</button> </div> </div> </div> </div> </form>
Исправил ошибку в переменной, из-за которой меня посылало, теперь пишет: 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): setcookie('user_id', $row['user_id'], time() + (60*60*24*30)); setcookie('login', $row['login'], time() + (60*60*24*30)); Вот 14 и 15 строки.
@Ezhevsky, ты устанавливаешь куки уже после того как произошёл вывод чего либо в браузер, следовательно и заголовки уже отправлены. Почитай механизм работы печенек. Вот тебе дословный перевод ошибки.
@Ezhevsky браузер и веб сервер общается по протоколу HTTP, если просто, то он разделён на заголовки и содержимое, если ты отправил содержимое, то заголовки уже ушли и их изменять нельзя. Тут пишет, что ты отправил содержимое в том файле на 8 строке, а после этого попытался изменить заголовки, вот тут и ошибка, их нужно было менять до отправки содержимого. Cookie прописываются в заголовках. https://www.php.net/manual/ru/function.setcookie https://www.php.net/manual/ru/ref.outcontrol.php
открой скрипт нотпадом++, вкладка encoding посмотри кодировку файла, возможно у тебя кодировка UTF-8 BOM должно быть без BOM просто UTF-8