Невозможно сохранить массив в сеанс, появляется пустой - PullRequest
0 голосов
/ 20 января 2012

Если вы сможете заставить этот простой пример SESSION VARIABLES работать, я обниму вас!
Я не могу заставить переменные сеанса вообще работать на моем сайте.Я использую php5 в Windows 7, используя браузер Chrome.

Вот страница отправки:

    <?php
     session_start();
     $red='red';
     $blue='blue';
     $green='green';

     $SESSVARS=array($red,$blue,$green);

     $_SESSION['USERVARS']= $SESSVARS; 

     ?>

 <p>Set Sessionvars</p>
 <form action="SessVarCheck.php" method="post">
 <input name="Submit" type="submit">
 </form>

Вот страница результата:

   <?php
    session_start();
    echo "val 1:".$_SESSION['USERVARS'][0];
    echo "val 2:". $_SESSION['USERVARS'][1];
    echo "val 3:". $_SESSION['USERVARS'][2];
   ?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SessVarCheck.php</title>
</head>

<body>
The Result page
</body>
</html>

Я получаю пустым все три эхаЛюбые идеи будут приветствоваться!

Ответы [ 2 ]

1 голос
/ 20 января 2012

Убедитесь, что вызов session_start() происходит до того, как будет выведено какое-либо содержимое страницы на обеих страницах. (См. Раздел «Примечание» здесь )

(Я предполагаю, что вы, возможно, уже знаете об этом, но, учитывая, что я не вижу «» на странице отправки, я подумал, что в этом сценарии может быть что-то еще. Кроме того, я не знаю, насколько чувствительным это требование - только пробелов перед тегом php может быть достаточно, чтобы быть проблемой.)

0 голосов
/ 20 января 2012

Попробуйте несколько вещей:

1) сделайте var_dump($_SESSION) на своей странице результатов, чтобы увидеть, что является необработанным содержимым сеанса

2) Убедитесь, что сеансы работаютправильно.Добавьте echo "SessionID: " . session_id(); к обоим сценариям, где-то ПОСЛЕ вызова session_start ().Если вы не получаете один и тот же идентификатор сеанса на каждой странице, вы каждый раз получаете новый сеанс, и это, скорее всего, проблема с файлами cookie.

...