1
$_SESSION
を取得して、user
セッションまたはadmin
セッションのいずれかを作成することはできません。コードの'admin'と 'user'の両方のセッションを停止する方法
User||1234||user admin||1234||admin
スタート:
<?php session_start();?>
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$level;
$date = date("d.m.Y");`
現在のコード:
これは、アカウントファイルの内容である
if (isset($_POST['login'])){
$file = explode(PHP_EOL, file_get_contents("Users/accounts.txt"));
$auth = false;
foreach($file as $line) {
list($username, $password, $level) = explode("||", $line);
if ($_POST['username'] == $username && $_POST['password'] == $password) {
$auth = true;
break;
}
}
if($auth) {
echo "Login successfull!";
$data = "Login successfull" . "\t" . "Username: " . $_POST['username'] . " Password: " . $_POST['password'] . " Level: " . $level . " Date: " . $date . "\r\n";
file_put_contents('Users/logs.txt', $data, FILE_APPEND);
if($level = 'admin') {
$_SESSION['admin']=$username;
header('location: check.php');
}
if($level = 'user') {
$_SESSION['user']=$username;
header('location: check.php');
}
}
else {
echo "Invalid username or password";
$data = "invalid login" . "\t" . "Username: " . $_POST['username'] . " Password: " . $_POST['password'] . " Level: " . $level . " Date: " . $date . "\r\n";
file_put_contents('Users/logs.txt', $data, FILE_APPEND);
}
}
?>
Current form:
<form method="post">
<b>Username:</b><br>
<input type="text" name="username" /><br>
<b>Password:</b><br>
<input type="password" name="password"/><br>
<input type="submit" value="Login" name="login"/>
<input type="reset" value="Reset" name="reset"/>
</form>`
が助けてください、私はしましたセッションや他の小さなものの名前を変更しようとしましたが、私は得ることができません私は特定のセッションが特定のページにアクセスするのを止めようとしているので、両方のセッションの実行を停止する必要があります。
を何らかの理由で 'User'としてログインしていても、' user'と 'admin'の両方のセッションを作成するので、私が持っているページは適切にコーディングされていないことを知っています。手伝ってくれますか? –
申し訳ありませんが、次の変更を加えました '$ level = 'admin'' =>' $ level ==' admin''と '$ level = 'user'' =>' $ level == 'ユーザー' –