大文字と小文字を区別し、スイッチとセッションを使用して1ページの管理パネルを作成しようとしています。phpログイン/ログアウトを1ページにする
私のコードは次のとおりです。
<?php
if (isset($_SERVER['QUERY_STRING'])) {
switch ($_SERVER['QUERY_STRING']) {
case "logout":
break;
case "restpassword":
break;
// Default Page
default:
session_start();
if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username']) {
$username = $_POST['username'];
$password = $_POST['password'];
$userid = login($username, $password);
if ($userid != "0") {
//Correct username and password set session & redirect
if (isset($_SESSION['user_id'])) {
$userid = $_SESSION['user_id'];
$username = $_SESSION['username'];
echo "Welcome " . $username;
}
break;
} else {
$msg = "Incorrect username or password";
}
}
?>
<html>
<head>
</head>
<body>
<form method="post">
<?php
//Print error message
if (isset($msg)) {
echo $msg;
}
?>
<label>Username:</label>
<input name="username" type="text" required="true"/>
<label>Password :</label>
<input name="password" type="password" required="true"/>
<input type="submit" name="submit" value="Login" required="true"/>
</form>
</body>
</html>
<?php
break;
}
}
?>
問題は、私はページを再入力ならば、それはすべてのセッションを保存していないと私は再度ログインしなければならなかったです。
私はそれをどのように解決すればよいのでしょうか?あなたのページの最上部へ
おかげでたくさん
あなたのページの最上部に 'session_start()'を移動し、 'switch'コードの一部ではありません。 – mitkosoft
あなたのログインリンクからは、変数を渡すことをお勧めします。 www.login.com?user=accessのように。 $ _GET [user] = accessの場合、このようにしてログイン機能を実行し、チェックを行い、セッションを保存することができます。その後、ログアウトリンクでは、あなたのログアウト機能を実行する別の変数。あなたはまだ1つのページに固執したい場合は、アイデアを得ることを願って –
私にそれを行うには、コード例を与えることができます – Markos