2014-12-09 2 views
1

Моя сессия делает не возобновляет при открытии другого файлаПочему моя сессия не работает?

У меня есть 2 страницы, test.php и test2.php. Каждый из моих файлов приведен ниже.

test.php:

<?php 
    session_save_path('sessBin'); 
    session_id('mySessionID'); 
    session_start(); 
    $_SESSION[1]="yo"; 
    echo $_SESSION[1]; 
?> 
<a href="test2.php">go to test 2</a> 

test2.php:

<?php 
    session_save_path('sessBin'); 
    session_id('mySessionID'); 
    session_start(); 
    echo $_SESSION[1]; 
    echo "bleh"; 
?> 

Первый возвращает страницу:

"yo" <a href="test2.php">go to test 2</a>

однако, при нажатии на ссылку, чтобы перейти test2.php, только это возвращает:

"bleh"

Я провел некоторое исследование, чтобы найти, что файлы cookie должны быть включены. Ну, они ... Так что не так?

Примечание: (Открытие с потом)

я заметил, что там было несколько файлов (в том числе sess_mySessionID) в sessBin поэтому сеанс сохраняется. Тем не менее, файлы пустые, и сеанс, похоже, не возобновляется.

+1

test2, удалите 2 строки над 'session_start();' –

+1

@ Дагон в порядке. Я попробую ... Я не думаю, что это сработает, потому что, если я правильно помню, я изначально закодировал это так и он все еще не работает. Я изменю его и дам вам знать ... –

+1

@ Дагон это не сработало ... –

ответ

0

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

** Обновление Ответ На основании ваших комментариев **

проверка белого пространства перед открытием PHP тега в test2.php. Кроме того, включите отчет об ошибках. Вы можете отправить что-то перед вызовом сеанса, вызывающим сбой session_start().

+1

«сразу после открытия php-тега» ** нет ** и он уже в любом случае –

+2

не работал. Len_D –

+1

См. Мой обновленный ответ. –

0

test1.php

// session_save_path('sessBin'); 
    // session_id('mySessionID'); 
    session_start(); 
    $_SESSION['test'] ="yo"; 
echo $_SESSION['test']; 

<a href="test2.php">go to test 2</a> 

test2.php

// session_save_path('sessBin'); 
    // session_id('mySessionID'); 
    session_start(); 
    echo $_SESSION['test']; 
    echo "bleh"; 

работал для меня!

+2

Можете ли вы предоставить мне ссылку, которая показывает, что это работает? –

+1

Я тестирую на localhost http://webxcrm.tk/session_test/ –

-1

Попробуйте это:

config.php

<?php 
    session_start(); 
?> 

Во всех других ваших файлов в верхней части добавить следующее:

include'config.php'; 

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

+2

Я не могу получить доступ к 'config.php'. Мой сайт размещен на чужом сервере, у которого есть php-материал. У меня нет доступа к –

+0

@AnOriginalAlias ​​Oke, а затем просто установите session_start(); в верхней части каждой страницы, которая также должна работать. – Tom

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