PHP DBなし ログインについて
Q&A
Closed
すでに新規登録ずみで ログインするだけのファイルを2つ作りました。
ログインができるように2つのファイルをつくりましたcsvファイルを読み込んでいきます。
ユーザには1,附番ID,2,ユーザーID、3,ユーザの名前、4,パスワードが割り振られています。
もっといい書き方があれば教えてほしいです。
戻って修正ができずにそのまま登録されてしまうのも問題です。
<?php
session_start();
if (isset($_SESSION['id'])) {
header('Location: top.php'); //ログインしていればtop.phpへリダイレクト
exit;
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ログイン</title>
</head>
<body>
<header>
<div class="login"><a href="signup.php">新規登録はこちらから</a></div>
</header>
<main>
<form action="login_done.php" method="post">
<div class="form_contents">
<h2>ログイン</h2>
<div class="userid">
<div class="hissu">必須</div>
<lavel>ID</lavel><br>
<input type="text" class="formbox" size="40" name="userid" required>
</div>
<div class="password">
<div class="hissu">必須</div><label>パスワード</label><br>
<input type="password" class="formbox" size="40" name="password" id="password" required>
</div>
<div class="login">
<input type="submit" name='login' class="submit_button" size="35" value="ログイン">
</div>
</div>
</form>
</main>
</body>
</html>
<?php
//ログインするための画面
$e = "";
session_start();
//ログイン済みかを確認
if (isset($_SESSION['id'])) {
header('Location: top.php'); //ログインしていればtexttable.phpへリダイレクト
exit;
}
//ログイン機能
if (!empty($_POST['userid']) && !empty($_POST['password'])) {
// print_r($_POST);
// print_r($_SESSION);
$userid = $_POST['userid'];
$password = $_POST['password'];
$user = fopen("csv/user.csv", "r");
while ($line = fgets($user)) {
$users = explode(",", $line);
$ids[] = trim($users[1]);
$passwords[] = $users[3];
// print_r($users[3]);
// print_r($users[1]);
}
fclose($user);
if (in_array($userid, $ids)) {
$user = fopen("csv/user.csv", "r");
while ($line = fgets($user)) {
$users = explode(",", $line);
if ($users[1] == $userid && trim($users[3]) == $password) {
$_SESSION['id'] = $users[0];
$_SESSION['name'] = trim($users[2]);
$e = "<a href='top.php' style = 'color:blue'>トップページへ</a>";
// print_r($users[0]);
print_r($_SESSION['id']);
print_r($_SESSION['name']);
break;
} else {
$e = "<a href='login.php' style = 'color:red'>パスワードが違います</a>";
// break;
}
}
fclose($user);
} else {
$e = "<a href='login.php' style = 'color:red'>IDが違います</a>";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php echo $e; ?>
<form action="top.php" method="post">
<input type="hidden" value="<?php echo $_POST['userid']; ?>" name="name">
<input type="hidden" value="<?php echo $_POST['name']; ?>" name="mail">
<input type="hidden" value="<?php echo $_POST['password']; ?>" name="password">
</form>
</body>
</html>