0

誰か助けてくれないかと思っていました。

私がdetails.phpページ(以下のコード)にいる場合は、送信ボタンのあるフォームがあります(とりわけ)。

フォームの送信ボタンをクリックすると、process_tenant.phpに移動します。

問題は、セッション変数valid_userが付属していないように見えることです。両方のページの先頭にsession_start()があり、セッション変数は確実に設定されており、details.phpで上書きされることはありません。

理由を教えてくれる人はいますか?

details.php

<?php
session_start();

    $_SESSION['valid_user'] = 'admin';

    echo $_SESSION['valid_user'];       //This prints out admin 
?>

<!DOCTYPE HTML>
<html>
<head>
        ...
    </head>

    <body>
        ...

        <form action='process_tenant.php' method='POST'>
            ...
        </form>
    </body>
</html>

process_tenant.php

<?php
   session_start();

   if (isset($_SESSION['valid_user']))
   {
       echo 'heya';          //This does not print
   }

   echo 'hi' . $_SESSION['valid_user'];    //This just prints 'hi'
?>

...
4

3 に答える 3

0

Config.php

<?php
ob_start();
session_start();
$_SESSION['valid_user'] = admin;
?>

Details.php

<?php
include('Config.php');
?>

process_tenant.php

<?php
include('Config.php');

if (isset($_SESSION['valid_user']))
{
     echo 'heya';
}
echo 'hi' . $_SESSION['valid_user'];
?>
于 2012-07-18T11:56:16.483 に答える
0

details.phpでは、値adminは何にも等しくありません。変数、文字列、または何らかの有効な型である必要があります。そうでない場合、設定が解除されます。

コードを次のように変更してみてください。

$_SESSION['valid_user'] = 'admin';
于 2012-07-18T11:48:27.530 に答える
-1

一度だけ開始します。つまり、一session_start()度だけ使用し、から削除してprocess_tenant.php、完了したら知らせてください。

于 2012-07-18T11:41:43.167 に答える