Php 成功登录后如何重定向?[菲律宾]

Php 成功登录后如何重定向?[菲律宾],php,login,Php,Login,我已经创建了一个登录系统。注册页面就像一个魔咒。但是登录页面有一些问题。当我尝试登录时,它会让我登录,但它会停留在同一个登录页面上。我的意思是,即使在登录之后,登录页面中也没有可见的变化。我希望它在成功登录后重定向,我已经尝试了标题,但由于一些奇怪的原因,它没有工作 我的代码(页面中的PHP): 删除标题前的空格和换行符: session_start(); require('connect.php'); // whitespace removed 这应该是: $query = "SELECT

我已经创建了一个登录系统。注册页面就像一个魔咒。但是登录页面有一些问题。当我尝试登录时,它会让我登录,但它会停留在同一个登录页面上。我的意思是,即使在登录之后,登录页面中也没有可见的变化。我希望它在成功登录后重定向,我已经尝试了标题,但由于一些奇怪的原因,它没有工作

我的代码(页面中的PHP):


删除标题前的空格和换行符:

session_start();
require('connect.php'); // whitespace removed
这应该是:

$query = "SELECT * FROM `user` WHERE username='$username' and password='$password'";

$result = mysql_query($query) or die(mysql_error());
你的:

$query = "SELECT * FROM `user` WHERE username='$username' and password='$password'";
$result = mysql_query($query) or die(mysql_error());
应该是:

header('Location: ...');

当您想要对函数头执行重定向时,必须正确地编写它才能使其工作

header("Location: redirectafterlogin.php"); exit; 如果不使用大写字母和冒号后的空格,它将不起作用。请阅读上的手册

(编辑)
我在评论中也看到了尝试添加完整路径的内容,这不是使其正常工作所必需的。

试试这个

标题(“位置:redirectafterlogin.php”); 出口 同样来自PHP文档

记住,在发送任何实际输出之前,必须调用header(),可以是通过普通HTML标记、文件中的空行,也可以是通过PHP。使用include或require函数或其他文件访问函数读取代码,并在调用header()之前输出空格或空行,这是非常常见的错误。使用单个PHP/HTML文件时也存在同样的问题


最简单的方法:

  • 将此代码放在页面中任何html之前(此代码之前不应有任何空格)

  • 使用此选项-区分大小写-

  • 完成后将其关闭

  • 尝试
    标题(“位置:http://www.yoursite.com/redirectafterlogin.php");使用完整的
    http
    呼叫。嗯。。?!你看过问题了吗?我确实使用了标题,但出于某种奇怪的原因,它们不起作用。还有其他我可以重定向的方法吗?还是我把标题放错地方了?嗯。。。。是的,我读过这个问题。这是您的完整代码,还是同一页上有更多我们不知道的代码?你说你的登录成功了。我想我把标题放错地方了。你怎么想?做
    var\u dump($count)
    echo$count
    紧跟在
    $count=mysql\u num\u行($result)之后查看正在通过的内容。我猜你的登录不起作用,就像你认为的那样。将错误报告添加到文件顶部
    错误报告(E_ALL);ini设置(“显示错误”,1)”应该是:“我在这里遗漏了什么?他们都一样。另外,
    //删除的空白
    空白表示“在上面”,而不是在
    会话_start()下面我刚刚删除了空格。可能您收到的错误是“已发送邮件头”。在诸如空格或下一行这样的标题之前不应该有输出。我尝试删除空格,但仍然是一样的。我没有收到任何错误。页面不会改变。它看起来几乎像是重新加载的。您可以检查是否已经发送了头,将重定向替换为:
    if(headers_sent()){die(“重定向失败”);}
    “我也在注释中看到尝试添加完整路径,这对使其工作不是必需的。”同样的事情也适用于大写的
    L
    。无效的是
    标题('Location:…')
    标题('location:…')
    位置
    位置
    前加空格。最好先提问,然后回答。
    $query = "SELECT * FROM `user` WHERE username='$username' and password='$password'";
    
    $result = mysql_query($query) or die(mysql_error());
    
    $query = "SELECT * FROM `user` WHERE username='$username' and password='$password'";
    $result = mysql_query($query) or die(mysql_error());
    
    header('Location: ...');
    
    header("Location: redirectafterlogin.php"); exit;