在WebArena上的Ubuntu 24
总结
我在Webarena上尝试了Ubuntu 18.04。 我尝试了PHP 7.2。 我尝试了会话认证。
登录.php
<?php
session_start();
header ('Content-Type: text/html; charset=Shift_JIS');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form action="index.php" method="POST">
ログインID:<input type="text" size="15" name="fLoginID"><br>
パスワード:<input type="password" size="8" name="fPassword"><br>
<input type="submit" value="ログイン">
</form>
</body>
</html>
index.php 翻译为:索引.php
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
$fLoginID = $_POST['fLoginID'];
$fPassword = $_POST['fPassword'];
$db = new PDO("mysql:host=localhost;dbname=mydb;", 'arena', 'pass');
$sql = "SELECT pass FROM test where flag='1' AND ID='$fLoginID'";
$res = $db->query($sql);
if ($res->rowCount() != 1)
{
header ('Content-Type: text/html; charset=Shift_JIS');
print "アカウントが違う、もしくはユーザ登録されていません。";
print '<a href="../">こちらから登録してください。</a>';
session_destroy();
exit;
}
$user = $res->fetch();
if ($user["pass"] != $fPassword)
{
header ('Content-Type: text/html; charset=Shift_JIS');
print "パスワードが違います。";
session_destroy();
exit;
}
$_SESSION['sLogin'] = "ok";
$_SESSION['sId'] = $fLoginID;
header("Location: contents.php");
}
else if ($_SESSION['sLogin'] <> "ok")
{
header("Location: login.php");
}
else
{
header("Location: contents.php");
}
?>
以上 .