-1

親愛なる友人たち、解決できない奇妙なエラーが発生しています。あなたの助けが必要です。ログインが正しくない場合、コードは正常に機能し、ログインが正しい場合でもセッションは作成されますが、代わりに index.php にリダイレクトされず、「ヘッダー情報を変更できません - ヘッダーは既に送信されました...」というエラーがスローされます。すでに同様の投稿を検索していますが、問題を解決できませんでした

ここにコードがあります

<?php include ("scripts/connection.php");
session_start();
$myusername = $_POST["myusername"];
$myusername = preg_replace('/[^a-zA-Z0-9\']/','',$_POST['myusername']);
$mypassword = $_POST["mypassword"];
$mypassword = preg_replace('/[^a-zA-Z0-9\']/','',$_POST['mypassword']);
$LoginQuery = "SELECT * FROM users WHERE username='$myusername' and password='$mypassword'";
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Admin Login</title>
</head>
<body>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr><form name="form1" method="post">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<?php if($_SERVER["REQUEST_METHOD"] == "POST")
{ $result = $mysql->query($LoginQuery);
  if($result->num_rows ==1) 
{
$_SESSION['login_user']=$myusername;
header("Location:index.php");
exit();
}
else
{
echo '<tr><td width="78">&nbsp;</td><td width="6"></td><td width="294"><font style="color:#f00; font-weight:bold;">Invalid!</font></td></tr>';
}
}
?>
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</body>
</html>

友達は私が間違っていたことを見つけて、それを修正するのを手伝ってくれます。ありがとうございました

4

2 に答える 2

0

HTTP を理解する必要があります。

リダイレクトは HTTP-Header によって実現されます。HTTP では、出力 (Web ページ自体など) の前にヘッダーが送信されます。

したがって、ペイロードを送信した後に Redirect-Header を送信しようとしています。

これは不可能です。

つまり、ページに何かを印刷した後は、絶対に header() を使用しないでください。

于 2013-02-17T14:09:53.073 に答える
0

header他のテキストを書く前に関数を使用する必要があります

于 2013-02-17T14:08:57.943 に答える