2014-04-18 3 views
0

Я не могу установить переменную сеанса на одной странице на другую, мой код ниже.Невозможно установить переменную сеанса php на другую страницу php

первая страница

session_start(); 
header('Content-Type: application/json;charset=utf-8'); 

///mysql connections 
while($row = mysql_fetch_array($sthpre)){ 
// Print out the contents of each row into a table 

$rows[] = $row; 
$_SESSION['id']=$row['id']; 
print json_encode($row); 

}//still i get null on the other page $_SESSION['id'] = 22; 

вторая страница

session_start(); 
header('Content-Type: application/json;charset=utf-8'); 
$row['id']=$_SESSION['id']; 
print json_encode($row); 
+3

dont print any output перед HEADER –

+0

Вы получаете заголовки уже отправили ошибку? –

+0

проверить, является ли ваш файл UTF-8 без спецификации –

ответ

0

Попробуйте, что:

session_start();

session_regenerate();

header ('Content-Type: application/json; charset = utf-8');

$ row ['id'] = $ _ SESSION ['id']; print json_encode ($ row);

+0

нет, ошибки, возврату не подлежит даже null – user3529738

0

Основы с осознанием того, что у вас есть другой идентификатор сеанса на каждой странице моей догадки, что каталог PHP пытается использовать для хранения сессий не доступен для записи пользователя апача. Если вы создаете страницу и поставить:

session_save_path(); 

Он расскажет вам, где PHP пытается записать информацию о сеансе на сервере. Убедитесь, что каталог, который он отображает для вас, доступен для записи пользователем apache (скорее всего, www-data). Или измените его на другой каталог, доступный для записи. Вы можете сделать это в своем коде:

session_save_path('/tmp'); 

Или вы можете изменить его в файле php.ini.

Если это не проблема, и это связано с тем, что ваше приложение не поддерживает согласованный идентификатор сеанса, вы можете заставить session_id.

session_start(); 
session_id('5468313'); //any random id 

Просто сделать это в обоих файлах, однако, вам нужно будет создать другой идентификатор сеанса для каждого человека, который регистрирует в противном случае все будут делить ту же сессию.

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