Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Зарегистрировать переменную в сессии при register_globals=Off ???
 
 автор: Andrew   (26.07.2005 в 22:20)   письмо автору
 
 

Уважаемые профи!

Пожалуйста, помогите разобраться, в чем дело. Я создаю несколько .рнр файлов, которые вызываются последовательно (друг из друга). В первом открываю сессию, регистрирую в ней переменную, в других файлах использую эту переменную. все работает только если в настройках РНР register_ globals = On. Если выключить передачу глобальных переменных, как, в основном и делают господа админы на хостах, в целях безопасности, как я понял, то моя переменная перестает видеться в других файлах, то есть, как видно, не регистрируется. Причем сессия открывается, session_id() выдает один и тот же идентификатор во всех файлах. $_REQUEST[PHPSESSID] и $_SESSION[PHPSESSID] также работают.
Пожалуйста, объясните, что здесь происходит и как с этим явлением бороться, т.е. как же регистрировать переменные в сессии при register_ globals = Off ? Причем, include (“first_file.php”); т.к. в переменную я передаю сгенеренное случайным образом имя файла, и, если инклюдить, то срабатывает генерация имени файла вторично :(

Заранее благодарен.

   
 
 автор: [CHOL]Scorpion   (26.07.2005 в 22:43)   письмо автору
 
   для: Andrew   (26.07.2005 в 22:20)
 

Есть 2 способа:
$переменная
и
$_POST['имяпеременной без знака $'], ну там ещё есть массивы $_GET и так далее, пробуй. Не работает одно, сработает другое.

   
 
 автор: Andrew   (26.07.2005 в 23:29)   письмо автору
 
   для: [CHOL]Scorpion   (26.07.2005 в 22:43)
 

Простите, Ваш покорный слуга - новичок в РНР, поэтому не очень понятно.
1)
что, передавать session_register($myvar); т.е. без ковычек и с обозначенией переменной? Так тоже не получается…
2) Да, я использую метод POST при передачи из формы, но как быть, если скрипт должен сработать, отправить пользователя на некий html файл сайта, а оттуда пользователь вызывает другой скрипт, в который нужно передать мою злощастную переменную?
И, можно ли по-подробнее? Я, честно говоря, не понял.
Спасибо за мгновенную помощь!
Да, и что же все-таки происходит при отключении массива GLOBALS ? Неужели переменные, зарегистрированные в сессии передаются только через него?

   
 
 автор: isset   (26.07.2005 в 23:52)   письмо автору
 
   для: Andrew   (26.07.2005 в 23:29)
 

Описывать все времени нет, а обращаться к переменной сессии так:
$_SESSION['имя']
Пример:

<?php
session_start
();
echo 
$_SESSION['username'];
?>


register_globals не отключает массив GLOBALS

   
 
 автор: Andrew   (27.07.2005 в 02:09)   письмо автору
 
   для: isset   (26.07.2005 в 23:52)
 

А вот и спасибо, сработало! При отключенном CLOBALS $SESSION['somename'] - передается в другие файлы!!!

>register_globals не отключает массив GLOBALS
Да уж, только очень "обрезает". И, соответственно, в функциональном плане, т.к. переменную «вытащить» легче, чем массив, особенно если при выводе одного массива в цикле (например, при генерации таблицы, куда выводятся значения этого массива), нужно выводить еще и соответствующие элементы другого массива (в те же <TR>-ки таблицы).
Из GLOBALS получается почти только массив миссивов (вывожу в браузер :)) – и не нарадуюсь :((

А вот что имел ввиду уважаемый(ая) [CHOL]Scorpion, я так и не понял, может еще какие хитрые способы? Если появится время, разъясните чайнику?

Спасибо всем откликнувшимся !!!!!

P.S. Настоящий форум - классная вещь!!! Он не дает отчаяться людям, которые стали на грань отчаяния (хоть даже в маленьком аспекте жизни).
Мое Вам искреннее СПАСИБО!

   
 
 автор: [CHOL]Scorpion   (27.07.2005 в 12:35)   письмо автору
 
   для: Andrew   (27.07.2005 в 02:09)
 

Andrew я имел ввиду то что написал isset. Имелось ввиду что переменные передаются двумя способами в зависимости от вкл/выкл register_globals

есть переменные, которые существуют, потому тчо не могут не существовать, например $HTTP_POST_VARS

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования