Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2014, 17:14   #1
kostya67
Пользователь
 
Регистрация: 19.06.2013
Сообщений: 49
По умолчанию Куки не работают

Есть форма , отправляется на эту же страницу, получаем пост и записываем куку. Где выводится эта форма пишем проверку на существование куки, если есть то форму не выводим, а если нет то выводим.

Проблема в том,что после отправки POST и записи куки все равно появляется форма, но после повторной отправки все норм уже.

С чем связанна эта проблема?
kostya67 вне форума Ответить с цитированием
Старый 18.11.2014, 18:04   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

setcookie:
Цитата:
setcookie() задает cookie, которое будет передано клиенту вместе с другими HTTP заголовками.
...
После передачи клиенту cookie станут доступны через массивы $_COOKIE и $HTTP_COOKIE_VARS при следующей загрузке страницы.
Другими словами – cookies устанавливаются в браузер уже после того, как отработал php-скрипт.
Andkorol вне форума Ответить с цитированием
Старый 18.11.2014, 19:14   #3
kostya67
Пользователь
 
Регистрация: 19.06.2013
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
setcookie:Другими словами – cookies устанавливаются в браузер уже после того, как отработал php-скрипт.
А можно ли как-то обойти это?
kostya67 вне форума Ответить с цитированием
Старый 18.11.2014, 20:19   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Нет необходимости.
В данном случае достаточно использовать обычную переменную-флаг:
PHP код:
$display_form 1// отображение формы: 1 – да, 0 – нет
if(!empty($_POST)){
    
// проверка данных
    // если данные верны – устанавливаем cookies и изменяем флаг:
    
setcookie('bla-bla', ...);
    
$display_form 0;
}

if(
$display_form 0){
    
// выводим форму
}
else{
    
// не выводим форму, альтернативные действия

Andkorol вне форума Ответить с цитированием
Старый 18.11.2014, 22:36   #5
kostya67
Пользователь
 
Регистрация: 19.06.2013
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Нет необходимости.
В данном случае достаточно использовать обычную переменную-флаг:
PHP код:
$display_form 1// отображение формы: 1 – да, 0 – нет
if(!empty($_POST)){
    
// проверка данных
    // если данные верны – устанавливаем cookies и изменяем флаг:
    
setcookie('bla-bla', ...);
    
$display_form 0;
}

if(
$display_form 0){
    
// выводим форму
}
else{
    
// не выводим форму, альтернативные действия

точняк, спасибо
kostya67 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
куки C# dimasik9281 C# (си шарп) 4 22.08.2014 10:33
Куки в C# dimasik9281 Фриланс 0 21.08.2014 15:38
Куки ilSMoKEli Работа с сетью в Delphi 1 15.06.2010 11:09
Куки Kinematik Работа с сетью в Delphi 0 27.12.2008 04:53