1

javascript を使用して php セッションからログアウトしようとしています。機能しません - JavaScript 関数が呼び出され、if ステートメントは機能しますが、php スクリプトは呼び出されません。それを行うより良い方法はありますか?.php ページを使用しています。

function logoutck() 
    {
    var r = confirm("Do you really want to log out?");
    if (r==true)
        {
        <?php
        session_start();
        session_destroy();
        header('Location: login.php');
        ?>
        } 
    }
4

4 に答える 4

2

あなたはそれを行うことができます:

function logoutck() {
    var r = confirm("Do you really want to log out?");
    if (r) {
       window.location.href = 'http://site.com/logout.php'
    } 
}
于 2013-07-23T04:35:17.870 に答える
2

私の理論とhttp://pastebin.com/439xPdJNのPastebin.comファイルによると

以下は、2 つのファイルを使用した実際のデモと、それが可能であることを示すための例です。

合わせて修正。

まず、それを使用する方法に関するいくつかの指示:

数を増やすには、ページ (session1.php) を数回リロードする必要があります。

次に、ログアウト ボタンを確認すると、ページ ビュー カウントが 0 に戻ります。

クレジットは( felipsmartins )の JS の例です。

コード:

このsession1.phpファイルを呼び出しましょう

<?php

session_start();  
if(isset($_SESSION['views']))
    $_SESSION['views'] = $_SESSION['views']+ 1;
else
    $_SESSION['views'] = 1;

echo "views = ". $_SESSION['views'];

?>

<!doctype html>

<head>

</head>

<body>

<script type="text/javascript">

function logoutck() {
    var r = confirm("Do you really want to log out?");
    if (r) {
       window.location.href = 'logout.php'
    }
}

</script>

<input id="button1" type='button' onclick='logoutck();' value='LOGOUT'/>

</body>

</html>

このlogout.phpファイルを呼び出しましょう

<?php

session_start();

if(isset($_SESSION['views']))
    unset($_SESSION['views']);

header("Location: session1.php");

?>
于 2013-07-23T05:42:50.837 に答える
1

javascriptクライアント側で実行され、サーバー側で実行されるため、機能しませんPHP

AJAXセッションを破棄するために call を使用できます。

javascript からセッションを強制終了する方法の詳細

于 2013-07-23T04:33:06.540 に答える
0

javascript、html、php の仕組み:

サーバーは最初に php スクリプトを上から下に実行します。スクリプト内のすべてのステートメントを実行し、html ページを作成し<?php echo '<h1>hello world<h1/>'; ?>ます<h1>hello world<h1/>。サーバーがすべての実行を完了すると、作成された html ページが返されます。

このページはブラウザによって読み込まれ、ブラウザが javascript コマンドを検出すると、それを実行しようとします。そのため、javascript コマンドが実行されると、php サーバーが既にそれらを実行し、そこから html ビューを作成しているため、php コマンドはもうありません。

次のステートメントは、php サーバーの場合と同じです。

<?php echo '<h1>hello world<h1/>'; ?>
<?= '<h1>hello world</h1>';
<h1>hello world</h1>

そのため、php スクリプトが実行されると、html ビューがクライアントに返される前にlogin.phpこのコマンドがサーバーによって実行されるため、に移動することに注意してください。header('Location: login.php');これは、このphpスクリプトをロードすると、クライアントが作成したhtmlファイルを受け取ることを意味しますlogin.php(このスクリプトに別のスクリプトへの転送も含まれていない限り)

于 2013-07-23T05:51:08.273 に答える