-1
を書く場合、私はsessions..Hereでシンプルなログインフォームに取り組んでいますが、誰かが正しいパスワードを書く、誰かが正しいパスワード/ユーザ名
<?php
ob_start();
session_start();
?>
<?
// error_reporting(E_ALL);
// ini_set("display_errors", 1);
?>
<html lang = "en">
<head> </head>
<body>
<h2>Enter Username and Password</h2>
<div class = "container form-signin">
<?php
$msg = '';
if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password']))
{
if ($_POST['username'] == '1' && $_POST['password'] == '1' )
{
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
header('Location: /test/login.php');
}
else $msg = 'not working';
}
?>
</div> <!-- /container -->
</div>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" >
<?php echo $msg; ?>
<input type="text" name="username">
<input type="password" name="password" >
<input type="submit" name="login">
</form>
</body>
</html>
私のindex.phpコードです彼はこのページに行きます localhost:8080/test/login.php しかし、誰かが "localhost:8080/test/login.php"を直接開こうとすると、彼はこのページ "localhost:8080/test"に行きます/index.php "
これは私のlogin.phpコード
<?php
session_start();
if ($_POST['username'] == '1' && $_POST['password'] == '1' )
{
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
header('Location: /test/login.php');
}
else{
header('Location: /test/index.php/');
}
?>
test 1
にリダイレクトされていない場合、あなたがHTMLを書いた後、ヘッダを送信している場合 - あなたはできるように、出力バッファリングを使用する必要がありますそれ。 Betteroptionは、HTMLコンテンツの前にPHPを置くことです – RamRaider
私は、login.phpが動作していないことを意味します... ...( –
セッションが設定されているかどうかは決して確認しません。 –