|
|
|
| Работаю с Денвером (PHP/4.4.2). Пытаюсь понять механизм работы сессий и их куков.
В тестовом примере:
<?php session_start(); ?>
<html>
<?php
$olegs[]="1";
$olegs[]="2";
$olegs[]="3";
$olegs[]="4";
$olegs[]="5";
$trash="FG116W1P|РАДИОБУДИЛЬНИК PHILIPS AJ-3470|1220|0506";
session_register("olegs", "trash");
?>
</html>
|
если сессии ещё нет - выдаётся сообщение
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Но в "куку" sess_8d8c05f976c428ff7e9fa97c9ee9f010 - записывается и маасив и переменная:
olegs|a:5:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";}trash|s:49:"FG116W1P|РАДИОБУДИЛЬНИК PHILIPS AJ-3470|1220|0506";
|
Теперь беру реальный пример, для чего мне это понадобилось. Сессия всегда стартуется.
Пытаюсь с ней работать.
if (session_is_registered("trash")) {
$trash=$_SESSION['trash'];
session_unregister("trash");
}
$trash=$code."|".$towarname."|".$summa."|".$sub;
echo $trash;
session_register('trash');
|
На "echo $trash" выдаётся: FG116W1P|РАДИОБУДИЛЬНИК PHILIPS AJ-3470|1220|0506
Создаётся sess_d38dea606ba207c4e9c26e68b43770f3
Но в ней всего лишь:
Переменная создаётся, в сессию вроде заносится, но где её значение?
И что за Warning выдаётся? | |
|
|
|
|
|
|
|
для: tuder
(01.02.2007 в 21:38)
| | Попробуй таким образом:
<?php
session_start();
$_SESSION['name'] = "User";
echo $_SESSION['name'];
?>
|
Не нужно вызываеть функцию session_register() при прямом использовании $_SESSION. | |
|
|
|
|
|
|
|
для: Boss
(01.02.2007 в 22:15)
| | }{м. Работает.
$trash=$code."|".$towarname."|".$summa."|".$sub;
echo $trash;
$_SESSION['trash']=$trash;
|
trash|s:53:"YH0TC9Y1|РАДИОПРИЕМНИК HYUNDAI H-1611 ЧЕРНЫЙ|359|0506";
Век живи, век учись. :-)
Это связано что-ли с версией php?
Кстати, $PHP_SESSION_VARS - Денвер категрически отказывается находить.
Видимо пора справочник менять.
Игорь Григин. PHP 4. 2002. Питер. | |
|
|
|
|
|
|
|
для: tuder
(01.02.2007 в 22:40)
| | не в тему но справочник Игоря Григина. PHP4 - это моя библия! Кстати вроде есть такойже токо на PHP5. Надо будет брать!
session_register работает только при включ0нном register_globals..если выключено то делать надо именно через $_SESSION['*****']. да и вроде $PHP_SESSION_VARS - это устраревшая конструкция слышал что её хотят убрать из php6 - хотя я могу ошибаться! | |
|
|
|
|
|
|
|
для: Alph[p]a
(01.02.2007 в 22:55)
| | >не в тему но справочник Игоря Григина. PHP4 - это моя библия! Кстати вроде есть такойже токо на PHP5. Надо будет брать!
Отож! У меня уже до дыр стёрт. Именно как справочник по функциям, а не как пособие по программированию. :-)
>session_register работает только при включ0нном register_globals..если выключено то делать надо именно через $_SESSION['*****']. да и вроде $PHP_SESSION_VARS - это устраревшая конструкция слышал что её хотят убрать из php6 - хотя я могу ошибаться!
Хм. В php.ini я отключил register_globals, по недавним обсуждениям. Чтобы делать без него как надо. Но для обсуждаемого сайта в .htaccess - php_flag register_globals on
Тем не менее session_register не работает.
Хм. Ээээ. А может всё с точностью до наоборот?! При php_flag register_globals on в .htaccess - в сессию занеслось с помощью $_SESSION, а вот где я тестировал, там .htaccess отсутствовал и по дефолту из php.ini бралось register_globals = Off - и работало с session_register. | |
|
|
|
|
|
|
|
для: tuder
(01.02.2007 в 23:07)
| | > У меня уже до дыр стёрт...
:))) мой ваще разваливаеться на части..в нем закладок штук с 20..))) частенько в него гляжу))) вот так запоминаешь)))
>Хм. В php.ini я отключил register_globals, по недавним обсуждениям....
Правильно сделал.
>>> session_register не работает
Оно тебе надо.?!?!.альтернатива есть...$_SESSION['***']
> Хм. Ээээ. А может всё с точностью до наоборот?!...
да вроде нет, это вычитал из PHP5 самоучитель как помню..(ну мож я туплю ночью (бывает))))
или .htaccess не работает как надо...??? | |
|
|
|
|
|
|
|
для: tuder
(01.02.2007 в 23:07)
| | Если у тебя стоит старая версия PHP (ниже 4.1) то для того чтобы передавать переменные из одного сценария в другой их нужно регистрировать с помощью register_globals().
Так как у тебя стоит версия више 4.1 то НЕТ СМЫСЛА использовать register_globals(), также не стоит использовать $HTTP_SESSION_VARS. | |
|
|
|