2

これがよく議論されていることは知っていますが、私の問題の解決策を見つけることができないようです:

次のようなフォームで新しいphpファイルに渡されるパスワードがあります。

<form method="POST" action="test.php">
Password: <input type="password" name="password" size="15" />
</form>

test.php ファイルでセッションを作成し、次のように POST でパスワードを取得します。

session_name('first'); 
session_start('first');

if (isset($_SESSION['pass_s'])) 
{
   $_SESSION['pass_s'] = $_SESSION['pass_s'];
} else 
{
   $_SESSION['pass_s'] = $_POST['password'];
}  
$pass = $_SESSION['pass_s'];

ただし、このページも次のように更新します。

 $page = "test.php";
 $sec = 60;
 header("Refresh: $sec; url=$page");

問題は、セッションが何があっても設定されたままになるため、新しいログイン時に古いセッションが開始されることです。セッションの名前付けとページの更新の間で行き詰まっています。リフレッシュのためにセッションを破棄することはできませんが、セッションを維持することもできません。私はクッキーに保持されていると思います。

基本的に、ページの終了時にセッションを破棄する必要がありますが、ページで更新が実行されている間は必要ありませんか?

4

2 に答える 2

1

まず、session_startには、uが見ることができるように引数がありません:http ://www.php.net/manual/es/function.session-start.php

第二に、phpセッションには存続期間があります。session.gc_maxlifetimeディレクティブ(「gc」はガベージコレクション用)のphp.iniのデフォルトは、1440秒または24分です。マニュアルの「セッションランタイムの構成」ページを参照してください。

次に、セッションを閉じたい場合は、session_destroyまたはunset($ _ SESSION ['pass_s'])を使用します。

于 2012-08-20T14:49:27.543 に答える
0

さて、私はそれを理解しました。セッションは必要ありません。これがあなたがすることです:

if ($_POST["password"] != "")
{
    $passb = $_POST["password"];
    $userb = $_POST["username"];

}
else
{
    $userb = $_GET["userb"];
    $passb = $_GET["passb"];

}

$urllink = "60;url=thisPage.php?userb=".$userb."&passb=".$passb;

次に挿入

<META HTTP-EQUIV="refresh" CONTENT=<?php echo $urllink?>>

これは 60 秒ごとに更新されます

基本的に、変数が投稿されているかどうかを確認します。次に、それをリンクに入れて、更新時に自分に送信します。これにはまだより良いセキュリティが必要ですが、魅力のように機能します

于 2012-08-22T09:50:56.000 に答える