gpt4 book ai didi

php - 我的 header() 调用没有重定向到新页面

转载 作者:行者123 更新时间:2023-11-28 04:41:06 25 4
gpt4 key购买 nike

我在使用 header 方法重定向我的页面时遇到问题。我想我知道问题出在哪里。但我对 PHP 领域还很陌生,所以我不知道还能尝试什么。根据我的阅读,如果页面已经在标题之前发送了数据,则 header() 方法将不会触发。我觉得这可能是我的问题的一部分,因为我的头函数之前有几个 echo 语句。会不会是别的东西?我该如何解决这个问题?

回显语句证明找到了正确的用户名和密码。我在 header 所在的位置放置了一个测试 echo 语句,它工作得很好。所以,我知道数据库正在寻找正确的信息。插入信息时页面会刷新。感谢您的关注。

<div id= "sidebar" >
<div id="login-box">
<form name="client-login" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<label id="user-lbl">Username:</label><br /><input type="text"
name="username" id="username" /><br /> <label id="pass-lbl">Password:</label><br /><input
type="password" name="password" id="password" /><br /> <label>&nbsp;</label><input
type="submit" value="Login" class="submit" id="login" />
</form>
<?php
$username = $_POST['username'];
$password = $_POST['password'];

if((!isset($username)) || (!isset($password))){

echo "<p>Username is $username. Password is $password.</p>";

}else{

$mysql = mysql_connect("myhost", "username", "password");
if(!$mysql){
echo "<p>Cannot connect to database!</p>";}
$selected = mysql_select_db("mydb", $mysql);
if(!$selected){
echo "<p>Cannot find database!</p>";}

$query = sprintf("SELECT count(*) FROM users WHERE username = '%s' AND password = '%s'", mysql_real_escape_string($username),mysql_real_escape_string($password));

$result = mysql_query($query, $mysql );
if(!$result){
echo "<p>Cannot run query.</p>";}

$row = mysql_fetch_row($result);
$count = $row[0];
if ($count > 0){
header("Location: account.php"); die();} else {echo "<p>Invalid username or password!</p>";}
}
?>

</div><!-- #login-box -->

最佳答案

如果您调用 header() ,那么它应该被调用 BEFORE 任何其他将输出打印到 HTML 流的函数,或者在该文件中的任何 HTML 语句之前。您不能在 header() 之前发送换行符打电话。

在您的案例中,首先您要发送 <div id= "sidebar" >和其他 7 行到客户端,然后只有你在调用 header()功能。这就是错误发生在你身上的原因。

原因:

header() call 的目的是将 HTTP header 信息传递给客户端浏览器。头信息应该是发送给客户端的第一个信息。如果您不调用 header()在您的 PHP 脚本中,PHP 会在发送 PHP 文件的第一行之前自动发送 header 信息。

发送 header 后,您不能在同一个 PHP 文件中发送另一个 header 。因此,如果您想专门发送一个 header ,请在任何其他正文内容开始之前发送它。

关于php - 我的 header() 调用没有重定向到新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7073576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com