@AVEN1Q
css js php

Куки в методе не сразу создаются?

Добрый вечер. Есть класс в нем несколько методов.

в updateHash() должны создаваться куки. Но этого не происходит сразу. Страницу нужно еще раз перезагрузить. тогда print_r() выводит и новые куки.
не понимаю почему так происходит. Объект создаю до вывода html страницы. У меня мало опыта, может кто-то сталкивался с похожей проблемой?

private function updateHash($hash,$id){

                //id и hash передаются, с ними все в порядке
                setcookie("id", $id, time()+60*60*24*30, "/");
                
                setcookie("hash", $hash, time()+60*60*24*30, "/");

            }
        
        
        
        
            private function check(){
                
                global $mysqli;
                
                print_r($_COOKIE); //выводит только phpsessid
                
                if (isset($_COOKIE['id']) && isset($_COOKIE['hash']))

                {   

                   ...

                } else {

                    $this->error[] = "Включите куки";
                }
            }
        
        
        
        
            public function getContent(){
                           ... {
                            ...
                            $hash = md5($this->generateCode(10));

                            $this->updateHash($hash, $row['id']);
                            
                            $this->check();
                            
                            $this->meta = $row;                        
                            
                        } else {
                            
                            $this->error[] = 'Неверный логин или пароль.';
                        }
                        
                } else {

                    $this->error[] = 'Пользователь с таким логином не зарегистрирован.';
                }
                
                
                
                return array(
                        "meta" => $this->meta
                );                
            }
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 2
Куки, это то, что хранится на стороне клиента, вы отправляете их в виде заголовков вместе с html, когда отвечаете клиенту на запрос. Естественно вы не сможете посмотреть куки.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
https://secure.php.net/manual/ru/function.setcookie.php
Секция Общие замечания. Почему? Да потому что в $_COOKIE то, что пришло из браузера. Для того, чтобы новые куки пришли из браузера нужно обновить страницу, логично же.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы