На первой странице я записываю данные из нужных мне переменных в массив сессии:
<?
session_start();
$_SESSION['name']=$arUser["NAME"];
$_SESSION['second_name']=$arUser["LAST_NAME"];?>
На второй странице я эти данные из массива извлекаю:
<?php
session_start();
?>
Глубокоуважаемый (ая)<? echo $_SESSION["second_name"].' '. $_SESSION["name"];?>
Запускаю на работе - все нормально. Выдает "Глубокоуважаемый (ая) %Surnane% %Name%". Запускаю дома - ничего. Просто "Глубокоуважаемый (ая)", без нужных мне данных.
На работе запускал на firefox'e - работает.. Дома пытался на chrome и на firefoxe - не работает. Пришел к другу, запустил на firefox'e и IE - работает. Запустил в хроме и опере - не работает.
Т.е. я так понимаю, что в некоторых браузерах данные из массива $_SESSION до второй страницы не доходят. ( Хотя, как вы видите, что и дома, и на работе у меня стоят firefox'ы, однако на работе работает, а дома - нет.)
Поэтому у меня 2 вопроса:
1) Почему так?
2) Как сделать, что бы все везде работало?)
Спустя 32 минуты, 31 секунда (4.10.2010 - 12:45) arvitaly написал(а):
Сессии не причем, $arUser["NAME"] просто видимо ничего нет.
Спустя 1 минута, 9 секунд (4.10.2010 - 12:46) inpost написал(а):
Halgrim
Либо твоя личная ошибка, что в какой-то момент $arUser пустая, что передаёт пустые значения. Так же советую попробовать использовать полное открытие: "<?php"
Можешь проверить ещё проще сессии: $_SESSION['name'] = "СВОЙ ТЕКСТ";
И на второй странице вывести его! Или же просто на второй странице проверяй через "isset".
Либо твоя личная ошибка, что в какой-то момент $arUser пустая, что передаёт пустые значения. Так же советую попробовать использовать полное открытие: "<?php"
Можешь проверить ещё проще сессии: $_SESSION['name'] = "СВОЙ ТЕКСТ";
И на второй странице вывести его! Или же просто на второй странице проверяй через "isset".
Спустя 11 минут, 26 секунд (4.10.2010 - 12:57) Halgrim написал(а):
Ну дело все в том, что на первой странице у меня данные $arUser выводятся, для тестирования)
И эти данные выводятся у всех без исключения. А вот когда я уже передаю их на другую страницу, данные почему-то теряются.
Присваивать элементу массиву конкретное значение пытался - все равно ничего не показывает.
echo $arUser["LAST_NAME"].' '. $arUser["NAME"].' '. $arUser["EMAIL"];
И эти данные выводятся у всех без исключения. А вот когда я уже передаю их на другую страницу, данные почему-то теряются.
Присваивать элементу массиву конкретное значение пытался - все равно ничего не показывает.
Спустя 1 минута, 35 секунд (4.10.2010 - 12:59) arvitaly написал(а):
isset скорее всего будет true, так как переменная инициализируется, но значение присваивается пустая строка.
Покажи весь кусок кода
Покажи весь кусок кода
Спустя 7 минут, 20 секунд (4.10.2010 - 13:06) Halgrim написал(а):
Первый файл:
Второй(Finish.php):
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Title");
$rsUsers = CUser::GetByID($USER->GetID());
$arUser = $rsUsers->Fetch();
echo $arUser["LAST_NAME"].' '. $arUser["NAME"].' '. $arUser["EMAIL"];
session_start();
$_SESSION['name']=$arUser["NAME"];
$_SESSION['second_name']=$arUser["LAST_NAME"];?>
<a href="finish.php">Сгенерировать Приглашение</a>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Второй(Finish.php):
<?php
session_start();
?>
Глубокоуважаемый (ая)<? echo $_SESSION["second_name"].' '. $_SESSION["name"];?>
Спустя 29 минут, 1 секунда (4.10.2010 - 13:35) arvitaly написал(а):
Сессии стартуй до выдачи html и вообще делай вывод ошибок
Спустя 48 минут, 30 секунд (4.10.2010 - 14:24) inpost написал(а):
arvitaly
Странно, что пхп не вышел с ошибкой!
Любой скрипт должен начинаться с, и ничего другого:
Странно, что пхп не вышел с ошибкой!
Любой скрипт должен начинаться с, и ничего другого:
<?php session_start();
ОСТАЛЬНОЕ
Спустя 11 минут, 13 секунд (4.10.2010 - 14:35) arvitaly написал(а):
Цитата |
Странно, что пхп не вышел с ошибкой! |
Ну наверное, отключен вывод.
Цитата |
Любой скрипт должен начинаться с, и ничего другого: |
Ты уже так не высказывайся) Главное чтобы заголовки передавались до тела страницы)
$a=b можно написать перед session_start();
Ну это я так на всякий случай, чтобы понятней было
Спустя 30 минут, 56 секунд (4.10.2010 - 15:06) Ice написал(а):
Цитата (arvitaly @ 4.10.2010 - 15:35) |
$a=b можно написать перед session_start(); |
inpost это знает, он просто страхует от ошибок тех, которые не могут отличить вывод от объявления