[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с переменными сессии
Страницы: 1, 2
дианитка
здравствуйте. у меня сегодня такой вот вопрос сформировался:
на странице есть форма критериев - цена и др. критерии. Пришлось добавлять сессионные переменные по цене, чтобы цена и др.критерии могли влиять друг на друга. Форма может отправляться несколько раз, в зависимости от того, сколько будет выбираться критериев. В упрощ.виде у меня не получается такое


if (isset($_REQUEST['submit_'])) {
if($_REQUEST['value1']='val1' and $_REQUEST['value2']='val2') $_SESSION['testing']='b';
}
else{$_SESSION['testing']='a';}

print_r($_SESSION['testing']);


1) отправляют форму первый раз и при этом т.к. выполняется условие $_REQUEST['value1']='val1' and $_REQUEST['value2']='val2' переменная testing $_SESSION['testing']='b' и выводит b

2) выбираю другой критерий - форма отправляется второй раз, при этом условие уже не выполняется и по идее (так мне нужно) $_SESSION['testing']='b' остается. Но на самом деле выводит $_SESSION['testing']='a'

Причем такое происходит на хостинге, а на денвере все правильно работает

_____________
дианка[COLOR=purple]
vasa_c
сравнение с помощью двух фиговинок записывается. ==

_____________
Блог ГО | Таблица символов Юникода | Графомания
дианитка
да, тут я ошиблась, но в настощем скрипте правильно

_____________
дианка[COLOR=purple]
дианитка
даже не знаю в каком направлении смотреть, в скрипте ошибка? но на денвере-то работает. на хостинге не указан параметр session.save-path:no value; но я пробовала на денвере не указывать путь к папке где хранятся сессии, но скрипт работает как прежде

_____________
дианка[COLOR=purple]
nugle
дианитка
что то мне подсказывает, что условие проходит, пробую var_dump($_REQUEST);
поставить в теле первого условия echo 1; во втором echo 2;
Проводи дебаг, одним словом
дианитка
сделала такую проверку на странице


if (!isset($_SESSION['counter']) or page!='catalog') $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";




на странице catalog переменная $_SESSION['counter'] =1 и не меняется при обновлении страницы

Причем это в одном файле такое all_header.php, а в файлах которые дальше по коду инкладятся, сессионная переменная обновляется

-------------------------
В общем, мой скрипт находится в all_header.php и во всем этом файле сессии не работают, а в других файлах работают. причем на денвере $_SESSION['counter'] обновляется и в all_header.php в чем может быть причина? все-таки в настройках хостинга?

_____________
дианка[COLOR=purple]
Игорь_Vasinsky
у вас вывод ошибок отключён??


здесь не настораживает ничего?

 or page!='catalog'

константа? чё мелкими буквами? про негласный договор - писать имена констант с в верхнем регистре - не слышали?
переменная? тогда в её имени чего-то не хватает.


или

Цитата
да, тут я ошиблась, но в настощем скрипте правильно


так как вы хотите чтобы мы вам помогли если тут вы постите один код, работаете с другим?


  if (!isset($_SESSION['counter']))  
$_SESSION['counter']=0;

echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";


прекрасно работает.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
дианитка
1) if (!isset($_SESSION['counter']) or PAGE!='catalog') $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";

ошибки включены. PAGE - константа или можно $page или вообще можно без or PAGE!='catalog' - это я для своего удобства сделала, чтобы только на этой странице counter обновлялся

2) настоящий скрипт очень большой, причем без форм тут не обойдется. И дело даже не в скрипте, в этом файле есть еще моменты, где используются сессионные переменные для других задач и они тоже не работают.

ну вообщем про самый первый скрипт можно забыть, его неработа связана с несохранением переменной сессии.

3)
if (!isset($_SESSION['counter']) or PAGE!='catalog') $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";

этот скрипт у меня тоже работает в дальнейших файлах , но не в файле all_header.php, где у меня возникли проблемы (all_header - это файл шапки для шаблонов, там размещается <head>)

_____________
дианка[COLOR=purple]
Игорь_Vasinsky
как подключаете all_header.php ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
дианитка
include $_SERVER['DOCUMENT_ROOT']."/blocks/all_header.php";

_____________
дианка[COLOR=purple]
Игорь_Vasinsky
напоминает мне эта строчка - отрывок из произведения Жени Попова.
если так - то неудивительно что он работает местами.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
дианитка
а почему? это не я так подключала, так уже было. и Попова я не читала.

_____________
дианка[COLOR=purple]
Игорь_Vasinsky
если инкремент элемента массива не происходит - значит что-то в условии

if (!isset($_SESSION['counter']) or PAGE!='catalog') $_SESSION['counter']=0;

не выполняется.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
дианитка
что-то не пойму - у меня $_SESSION['counter'] при первом обновлении = 1 и потом не изменяется. а причем тут это условие?

_____________
дианка[COLOR=purple]
Игорь_Vasinsky
а, ну да, у вас там в строку напичкано было

ошибся - т.е. выполняется всегда, от того и происходит всё время 0++ = 1

это от того что умирает сессия, что то её выбивает и $_SESSION['counter'] - перестаёт существовать

а вот почему это происходит - мне отсюда не видно



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.