| |
|
|
| | Уважаемые профи!
Пожалуйста, помогите разобраться, в чем дело. Я создаю несколько .рнр файлов, которые вызываются последовательно (друг из друга). В первом открываю сессию, регистрирую в ней переменную, в других файлах использую эту переменную. все работает только если в настройках РНР register_ globals = On. Если выключить передачу глобальных переменных, как, в основном и делают господа админы на хостах, в целях безопасности, как я понял, то моя переменная перестает видеться в других файлах, то есть, как видно, не регистрируется. Причем сессия открывается, session_id() выдает один и тот же идентификатор во всех файлах. $_REQUEST[PHPSESSID] и $_SESSION[PHPSESSID] также работают.
Пожалуйста, объясните, что здесь происходит и как с этим явлением бороться, т.е. как же регистрировать переменные в сессии при register_ globals = Off ? Причем, include (“first_file.php”); т.к. в переменную я передаю сгенеренное случайным образом имя файла, и, если инклюдить, то срабатывает генерация имени файла вторично :(
Заранее благодарен. | |
| |
|
|
| |
|
|
| |
для: Andrew
(26.07.2005 в 22:20)
| | | Есть 2 способа:
$переменная
и
$_POST['имяпеременной без знака $'], ну там ещё есть массивы $_GET и так далее, пробуй. Не работает одно, сработает другое. | |
| |
|
|
| |
|
|
| |
для: [CHOL]Scorpion
(26.07.2005 в 22:43)
| | | Простите, Ваш покорный слуга - новичок в РНР, поэтому не очень понятно.
1)
что, передавать session_register($myvar); т.е. без ковычек и с обозначенией переменной? Так тоже не получается…
2) Да, я использую метод POST при передачи из формы, но как быть, если скрипт должен сработать, отправить пользователя на некий html файл сайта, а оттуда пользователь вызывает другой скрипт, в который нужно передать мою злощастную переменную?
И, можно ли по-подробнее? Я, честно говоря, не понял.
Спасибо за мгновенную помощь!
Да, и что же все-таки происходит при отключении массива GLOBALS ? Неужели переменные, зарегистрированные в сессии передаются только через него? | |
| |
|
|
| |
|
|
| |
для: Andrew
(26.07.2005 в 23:29)
| | | Описывать все времени нет, а обращаться к переменной сессии так:
$_SESSION['имя']
Пример:
<?php
session_start();
echo $_SESSION['username'];
?>
|
register_globals не отключает массив GLOBALS | |
| |
|
|
| |
|
|
| |
для: isset
(26.07.2005 в 23:52)
| | | А вот и спасибо, сработало! При отключенном CLOBALS $SESSION['somename'] - передается в другие файлы!!!
>register_globals не отключает массив GLOBALS
Да уж, только очень "обрезает". И, соответственно, в функциональном плане, т.к. переменную «вытащить» легче, чем массив, особенно если при выводе одного массива в цикле (например, при генерации таблицы, куда выводятся значения этого массива), нужно выводить еще и соответствующие элементы другого массива (в те же <TR>-ки таблицы).
Из GLOBALS получается почти только массив миссивов (вывожу в браузер :)) – и не нарадуюсь :((
А вот что имел ввиду уважаемый(ая) [CHOL]Scorpion, я так и не понял, может еще какие хитрые способы? Если появится время, разъясните чайнику?
Спасибо всем откликнувшимся !!!!!
P.S. Настоящий форум - классная вещь!!! Он не дает отчаяться людям, которые стали на грань отчаяния (хоть даже в маленьком аспекте жизни).
Мое Вам искреннее СПАСИБО! | |
| |
|
|
| |
|
|
| |
для: Andrew
(27.07.2005 в 02:09)
| | | Andrew я имел ввиду то что написал isset. Имелось ввиду что переменные передаются двумя способами в зависимости от вкл/выкл register_globals
есть переменные, которые существуют, потому тчо не могут не существовать, например $HTTP_POST_VARS | |
| |
|
|