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 :: Потеря переменных при отправки формы
Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2008
Помог: 0 раз(а)
может кто сталкивался с таким...
есть 2 странички одна на родительском домене http://rosstar[dot]ru/ , вторая в сабдоме https://shop.rosstar.ru/.
при первом переходе происходит обращение к сессии и все срабатывает, но теряется первый парамерт name=maxx, но он ради этого сейчас и вставлен. при втором переходе теряются оба параметра... и соответственно ничего не происходит.
подскажите пожалуйста откуда у данной проблемы могут рости ноги...
Чудеса прямо
Может я не совсем прав, но может стоить передавать парамерты не в самом action, а использовать hidden-поля?
KiTaeZa
Отправлено: 24 Декабря, 2008 - 17:06:50
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2008
Помог: 0 раз(а)
да уж чудеса...
дорисовал чтобы форма передовалась с помощью get, и action без параметров, запихнул phpsesid в хиден поле, да я перешел по запросу, phpsesid осталась в строке запроса, то что была нажата кнопка в строке запроса не отобразилось )), сессия не увидела в урл номер сессии и создала новую (
Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2008 Откуда: обнинск
Помог: 0 раз(а)
[+]
хм зачем hiden поля не понимаю... ент называется палево. во вторых когда передаете через GET все параметры у вас и будут в адресной строке... можете сделать так,
можете так попробовать, в этом случае вы получаете защифрованные данные в URlе и все переменные хранятся в сессии)))
----- Не пользуйтесь денверами, делайте сами связки)))))
KiTaeZa
Отправлено: 25 Декабря, 2008 - 11:47:53
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2008
Помог: 0 раз(а)
ам проблема в том что данные передаются не между одним и тем же доменом , а между разными, но на одном сервере. в вашем варианте на второй странице начнется просто новая сессия в которой не будет старых переменных. И я чесно говоря не совсем понимаю по вашему коду рациональность применения шифровки ид сессии. Если только не сравнивать с тем что в сесси ради того чтобы удостовериться что это тот человек.
но проблема пока не в этом. (Добавление)
попробую обрисовать ситуацию на данным момент ....
по прежнему есть две страницы http://rosstar[dot]ru/session_test.php с кодом:
все дополнительные поля и параметры я убрал.
при переходе с первой страничке на вторую (в первый раз когда сессия только началась) все срабатывает и я получаю переменную из сессии. В адресной строке при этом наблюдается такая строка https://shop[dot]rosstar[dot]ru/otvet_ses_test.php
тоесть при этом переходе мне автоматом приплюсовыет идентификатор сессии о.О и сессия стартует. При последующих заходах (посути с тойже сессией) мне автоматом ничего не плюсует и сессия не запускается. Перезапуск браузера(старт новой сессии) при водит к тому что данные снова выводятся 1 раз и ситуация повторяется.
При повторном вызове скрипта он стартует новую сессию и дальше продолжает с ней рабоать.
Если при этом передавать переменную PHPSESSID руками в адресной строке с точно таким же именем и с тем же значением, то в адресной строке будут две одинаковые переменные, сессия же ее просто игнорирует, тоесть переменную можно вытащить в скрипте вывести, но на запуск сессии она не повлияет.
Сейчас мне очень интересно понять почему автоматом мне добавляется PHPSESSID в url при первом запуске и не пишется в последствии, так же хочется понять почему при повторном заходе может начинаться новая сессия, если предыдущая еще не закончилась(ни по времени, ни по закрытию браузера ни по коду), да и вообще что это может быть за бред)
Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2008 Откуда: Чебоксары
Помог: 0 раз(а)
Добавляется видимо по тому, что у Вас отключены coockie, а не приписывается потому, что оно отключено в настройках PHP.
При повторном заходе новая сессия начинается, если пользователь не передал, или передал не верные данные о сессии
Покинул форум
Сообщений всего: 146
Дата рег-ции: Май 2008 Откуда: Сутки до японии, неделя до Москвы
Помог: 0 раз(а)
Ребята, может я и ошибаюсь, но сессии при работе абсолютно пофигу, включены ли куки.
Механизм сессий проверит их при первом запуске сессии на каждом серваке....
________________________________ __
Все вышеперечисленные механизмы позволяют только назначить имя сессии, без передачи переменных из неё, незнаю, какой в этом толк и для чего это может пригодиться.....
________________________________ ___
Если вам именно это и надо, причем только это, то это вы делаете принципиально неправильно. Данный механизм сработать может только при некоторых условиях... но я бы порекомендовал функцию session_id() для уверенного присвоения id сессии.
И и не надо перавая GET параметр, давать ему имя PHPSESID, это имя уже использует сам php, получается каша..... работать мож и будет, но лучше не надо... (Добавление)
Кстати, session_id() следует использовать до старта сессии
----- купил камаз и не жалею,...
никого не жалею!!!
KiTaeZa
Отправлено: 29 Декабря, 2008 - 08:43:27
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2008
Помог: 0 раз(а)
мня... короче говоря все закончилось на шаманизме.
to botik сессии ради этого перехода не отключаю ;) они у меня включены.
Почему при первом переходе в поддомен PHP сам приписал phpsesid и удачно стартовал нужную сессию, осталось загадкой. Но при дальнейших перемещениях по поддомену он сразу же начинал новую сессию и ходил я дальше уже в ней, соответственно никаких переменных в ней небыло.
to nobel сессиям не пофигу включены ли куки, это все будет зависить от настроек серва, если там прописано в начале пробывать писать в куки, а затем если нефига не получилось добавлять в url , то в принцыпе да можно о куках не задумываться.
насчет вышеперечисленных механизмов, вы не совсем правы, действия происходят на одном сервере и сессии храняться в одном и том же месте. по этому и важно было начать сессию на поддомене с тем же самым ид, чтобы получить доступ к переменным (и это получалось, но не совсем так как хотелось бы).
в итоге мои экперементы закончились на том что мне посоветывали не страдать фигней, потому что эти поппытки к гарантированному результату бы не привели. Так же посоветывали для переноса сессии между доменами использовать следующий механизм. создать отдельный скрипт и на основном сайте и на поддомене, и перекидывать на этот скрипт с помощью мод_реврайта, а в этом скрипте выбирать данные из сессии и переправлять в гет/пост запросе в необходимом направлении. Так получаются две стабильно работающие сессии, которые будут обмениваться данными.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.