2013-07-18 5 views
0

У меня есть формальный код, но переменная сеанса не может быть передана на другую страницу. Итак, вот мой пример кода. Однако результат этого кода 0 .:php session не может передать переменную на другую страницу

стр.1 Код:

<?php 
session_start(); 
$_SESSION['try'] = 5; 
header('Location: page2.php'); 
?> 

стр.2 код:

<?php 
session_start(); 
$test = $_SESSION['try']; 
echo $test; 
?> 
+2

Отключены ли печеньки? Если это так, вам нужно передать session_id в свою сессию. –

+0

Куки-файлы не имеют ничего общего с переменными '$ _SESSION' – adamdehaven

+0

Не имеет ли $ test двойной знак равенства? –

ответ

0

От manual:

session_start() creates a session or resumes the current 
one based on a session identifier passed via a GET or POST request, 
or passed via a cookie. 

обратить внимание на последние две строки кода:

<?php 
// page1.php 

session_start(); 

echo 'Welcome to page #1'; 

$_SESSION['favcolor'] = 'green'; 
$_SESSION['animal'] = 'cat'; 
$_SESSION['time']  = time(); 

// Works if session cookie was accepted 
echo '<br /><a href="page2.php">page 2</a>'; 

// Or maybe pass along the session id, if needed 
echo '<br /><a href="page2.php?' . SID . '">page 2</a>'; 
?> 
+1

Также из [manual] (http://www.php.net/manual/en/session .configuration.php # ini.session.use-only-cookies) - session.use_only_cookies указывает, будет ли модуль использовать файлы cookie только для хранения идентификатора сеанса на стороне клиента. Включение этого параметра предотвращает атаки, связанные с прохождением идентификаторов сеанса в URL-адресах. Этот параметр был добавлен в PHP 4.3.0. По умолчанию 1 (включен) с PHP 5.3.0. – Orangepill

+0

@Orangepill право! Спасибо за ваш комментарий! – alfasin

+0

Спасибо. Я проверил код. После того, как я нажал «страница 2», результат по-прежнему равен 0, что означает отсутствие значения переменной сеанса, переданной на вторую страницу. – user2596579

Смежные вопросы