在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");
    }
?>

以上 .

广告
将在 10 秒后关闭
bannerAds