За последние 24 часа нас посетили 73404 программиста и 5500 роботов. Сейчас ищут 1653 программиста ...

Помогите решить ошибку при создании cookie.

Тема в разделе "PHP для новичков", создана пользователем G-Man, 15 ноя 2018.

  1. G-Man

    G-Man Новичок

    С нами с:
    15 ноя 2018
    Сообщения:
    15
    Симпатии:
    0
    В php я новичок, и при попытки добавить куки вылезает ошибка, я почитал что пишут что надо просто setcookie в начала перенести, но мне не помогло, если кто знает подскажите пожалуйста.
    Код (Text):
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4.     <meta charset="utf-8" />
    5.     <title>Page Title</title>
    6. </head>
    7. <body>
    8. <?php
    9. // Подключение к бд имеется, я его просто удалил.
    10. $name = $_POST['login'];
    11. $password = $_POST['password'];
    12. $dbname = mysqli_query($con,"SELECT name FROM users");
    13. $dbpassword = mysqli_query($con,"SELECT password FROM users");
    14. $dbdostup = mysqli_query($con,"SELECT dostup FROM users");
    15. $b = 0;
    16. while ($res = mysqli_fetch_row($dbname)){
    17.     $arrname[$b] = $res;
    18.     $b++;
    19. }
    20. $b = 0;
    21. while ($res = mysqli_fetch_array($dbpassword)){
    22.     $arrpassword[$b] = $res;
    23.     $b++;
    24. }
    25. $b = 0;
    26. while ($res = mysqli_fetch_array($dbdostup)){
    27.         $arrdostup[$b] = $res;
    28.         $b++;
    29. }
    30.  
    31. for ($i=0;$i<count($arrname);$i++){
    32.     if ($arrname[$i][0] == $name and $arrpassword[$i][0] == $password){
    33.         $c++;
    34.         if ($arrdostup[$i][0] == 1) {
    35.             ?>
    36.             <script>
    37.             document.location.href = "index2.php";
    38.             </script>
    39. <?
    40.         }
    41.         else{  
    42.             //Ошибка вот в этой строке.
    43.             setcookie("password", "123",time()+60);    
    44. ?>
    45.             <script>
    46.             //document.location.href = "sait.php";
    47.             </script>
    48.             <?
    49.         }
    50.  
    51.     }
    52. }
    53. if ($c == 0){
    54.     echo "Ошибка! Вы ввели неверные данные!";  
    55. }
    56. ?>
    57. </body>
    58. </html>
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Для начала не надо тянуть данные пользователя разными запросами. Достаточно одного.
    Далее не надо пароль записывать в куки. Это небезопасно.
    Далее желательно проверять отправлена форма или нет, чтоб каждый раз не дёргать базу данных и не получать ошибки аутентификации.
    Ну и последнее собственно по делу. Перенести всю пхп-логику ДО начала вывода. Не надо начинать скрипт с хтмл-кода ибо это как раз и приводит к тому что начинается вывод в поток а значит закрывается сеанс заголовков а значит печеньку уже поздно устанавливать.