2012-01-19 10 views
0

この単純なセッション変数の例を使用することができれば、私はあなたを抱き締めます!
私のサイトではセッション変数がまったく動作しません。私は、Windows 7でChromeブラウザを使用してphp5を実行しています。配列をセッションに保存できません。空になります。

ここで、送信ページがあります:

<?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> 

私はすべての3つのエコーでは空得ます。 アイデアを歓迎します!セッションが正常に動作していることを確認してください)

1)セッションの生の内容は

2何であるかを確認するために、検索結果ページにvar_dump($_SESSION)の操作を行います。

+0

あなたは何をサーバーで実行していますか? (またはこれはすべてローカル) – MrGlass

+0

var_dump($ _ SESSION);を試しましたか? – mychiara

答えて

0

は、いくつかのことを試してみてください。どちらのスクリプトにも、session_start()呼び出しの後にecho "SessionID: " . session_id();を追加してください。各ページで同じセッションIDを取得しないと、毎回新しいセッションが取得され、Cookieに問題が発生する可能性が最も高いです。

+0

Linux/Apache Webホストで問題がなくても、セッション変数がIISテストサーバー上で動作しないため、これをクローズしていません。誰かが答えを見つけた場合に備えて、私はそれを開いたままにします –

1

session_start()へのコールは、ページの内容が出力される前に発生していることを確認してください。 (セクションhereを「注記」を参照してください)

(私はあなたがすでにこのことを知っても想定し、私は、送信ページの「<HTML>」を参照していないことを考えると、私はそのスクリプトにもっとあるかもしれないと思いました。また、私はこの要件がどれほど敏感であるかわかりません - PHPタグが問題になる前に十分なスペースがあるだけです)

+0

AHA!私はIIS 7テストサーバーでこれをローカルに実行していました。 Linux上で動作しているApacheのWebホストにアップロードするとうまくいきます。 IISの奇妙な点は? –

関連する問題