Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сохранить post в переменную и не очищать ее при обновление страницы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
zapatronen
Отправлено: 17 Июля, 2017 - 17:14:59
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Есть в корзине покупок поле " промо". Код который дает скидку.
Поле обрабатывается постом, цена меняется, но при переходе на другую страницу, пост очищается и скидка не получается.
Помогите понять логику как обхитрить пост и зафиксировать его при активации

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $_SESSION['promo']=mysqli_real_escape_string($dbc, trim($_POST['promo']));
  4. $promo=$_SESSION['promo'];
  5.     switch ($promo) {
  6.        case '':
  7.           echo "<form method='post'><input size='11' type='text' name='promo' pattern='^[a-zA-Z0-9\s]+$' value='' placeholder='код'>
  8.            <input type='submit' name='submit5' value='+'></input>
  9.            </form>";
  10.             $_SESSION['summa']=$summa;
  11.             break;
  12.             case 'blackfreeday':
  13.             echo "промо активирован";
  14.                 $_SESSION['summa']=$summa*30/100;
  15.                 echo "<form  method='post'><input size='11' type='text' name='promo' pattern='^[a-zA-Z0-9\s]+$' value='' placeholder='код'>
  16.            <input type='submit' name='submit5' value='+'></input>
  17.            </form>";              
  18.             break;
  19.             case ($promo != blackfreeday):
  20.                 $error="такого нет";
  21.                 echo "<form method='post'><input size='11' type='text' name='promo' pattern='^[a-zA-Z0-9\s]+$' value='$error' placeholder='код'>
  22.                 <input type='submit' name='submit5' value='+'></input>
  23.                 </form>";
  24.             break;
  25.     }
  26. ?>
  27.  
  28.  


Проблему вижу в замкнутом круге. Воожу данные в пост и начинается активация скрипта. Но если обновить страницу, то поле " промо" получается пустым от чего вся моя конструкция рушится

Подскажите логику или костыль, чтобы промо код сохранялся и не обнулялся, желательно без базы данных

С уважением, Павел
 
 Top
Строитель Модератор
Отправлено: 17 Июля, 2017 - 18:03:21
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




zapatronen, сохраняйте значение в сессию, и тогда после обновления страницы данные из пост запроса будут сохранены. Разумеется, сессию проверять надо перед записью, если она ещё пуста, тогда сохранить в неё данные из пост запроса.
 
 Top
zapatronen
Отправлено: 17 Июля, 2017 - 18:26:24
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Так я в сессию и записываю
$_SESSION['promo']=mysqli_real_escape_string($dbc, trim($_POST['promo']));

Просто, когда жму перейти на сл. страницу, куда должна перенестись сессия поле в форме, которое обрабатывается постом очищается и сесси присваевается нулевое значение и все херится
или вы говорите, что проверка сесси на пустоту ключ к решению?
 
 Top
Строитель Модератор
Отправлено: 17 Июля, 2017 - 18:54:47
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




zapatronen пишет:
проверка сесси на пустоту ключ к решению?
Совершенно верно.
 
 Top
zapatronen
Отправлено: 18 Июля, 2017 - 07:14:06
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Все работает как часы добавил просто строку по совету Строителя

if(empty($_SESSION['promo'])){

}
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB