-1

a.php ここで、ログイン時に状態をログイン済みとして保存します。b.php に移動します。そのため、a.php に戻ろうとすると、状態がチェックされ、状態がログインしている場合は再度 b.php にリダイレクトされます。

<?php 
session_start();
$_SESSION['login_state'];
?>
<?php
if($_SESSION['login_state'] == "loged in")
header("location:b.php");
?>
<html>
<body>
<form name="form1" method="post" action="b.php">
username :<input type="text"/>
</br>
submit :<input type="submit"/>
</form>

</body>

</html> 

b.php ここにリンクログアウトを押すと関数とのリンクがあります。関数を呼び出して状態をログアウトに変更し、a.php に転送します。a.php が状態をチェックすると、ログインしていないため、二度と b.php に誘導しません。

<script type="text/javascript">
function logout()
{
<?php
$_SESSION['login_state']="loged out";
header("location:a.php");
?>
}
</script>
<?php
session_start();
$_SESSION['login_state']="loged in";
echo $_SESSION['login_state'];
?>
<html>
<body>
<a href="#" onClick="logout()">logout</a>
</body>
</html>

アラートを表示してユーザーを防止したい (ログアウトしますか、それともこのページを離れる前に作業を保存しますか) どうすればできますか?

4

1 に答える 1

0

面倒な英語のせいで、何を達成しようとしているのかわかりません...

logout() 関数で javascript と php を混在させることはできません。しかし、解決策があります:

  1. 「logout.php」という新しいファイルを作成します
  2. JavaScript logout() 関数の内容をそれに入れます
  3. 次に、html を修正します。 <a href="logout.php">logout</a>

そして、あなたの元の質問。.onbeforeunloadを使用できます:

window.onbeforeunload = function(e) {
  return 'Do you want to log out or do you want to save you work before leaving this page?';
};

戻りテキストは、すべてのブラウザーでサポートされているわけではないことに注意してください。

于 2013-11-09T15:39:21.953 に答える