Php 登录后不重定向
我已经做了一个登录函数,但是当我登录时它不会重定向到正确的页面。有人有解决这个问题的线索吗 下面是我的loginform的部分代码Php 登录后不重定向,php,login,Php,Login,我已经做了一个登录函数,但是当我登录时它不会重定向到正确的页面。有人有解决这个问题的线索吗 下面是我的loginform的部分代码 session_start(); if(isset ($_SESSION['loggedin'])) { header( "Location: account.phtml" ) ; } if (isset($_POST["submit"])) { $username = $_POST ["username"]; $password =
session_start();
if(isset ($_SESSION['loggedin']))
{
header( "Location: account.phtml" ) ;
}
if (isset($_POST["submit"]))
{
$username = $_POST ["username"];
$password = $_POST ["password"];
if ($username && $password)
{
$query = mysql_query("SELECT * FROM user WHERE username='$username'");
if($query)
{
$numrows = mysql_num_rows($query);
if($numrows != 0)
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row ['username'];
$dbpassword = $row ['password'];
}
if ($username == $dbusername && $password == $dbpassword)
{
$_SESSION['username'] = $dbusername;
$_SESSION['loggedin'] = true;
header("Location: account.phtml");
}
}
}
else{}
}
}
这是我的loginform中的一部分
<form class="form-horizontal" role="form" method="post" target="account.phtml">
<!-- here comes my loginform -->
</form>
更改此
header("Location: account.phtml");
到
使用您想要导航的url。
我认为您在工作页面上进行了重定向。您的表单目标和导航url是相同的。最可能的原因是,在您发出重定向时,您的标题已被发送。如果是这种情况,那么PHP将发出一条警告消息——为什么您看不到呢?因此,第一步是在会话_start()之前显式触发警告,并确保错误报告正常工作
如果这是唯一的问题,那么你的问题将作为许多其他问题的重复而结束,这些问题最终与同一个根本原因有关
下一个问题是在head('Location:…)函数之后没有停止代码的执行(提示:如果在header()和exit之间插入一条print语句,则可能会获得一些有关代码执行情况的诊断信息)
下一个问题是,您的代码对SQL注入非常开放。考虑一下如果会发生什么
$_POST ["username"]="nouser' UNION SELECT 'admin' AS username, '' AS password "
."WHERE 'a'='a";
下一期是:
if(isset ($_SESSION['loggedin']))
如果$_SESSION['loggedin']==false怎么办?比如@ajay patel说:和header(“Location:account.phtml”);都是一样的。。。更改标题(“位置:登录后进入您想要访问的页面。非常感谢,您的回答确实帮了我很多忙!”!
$_POST ["username"]="nouser' UNION SELECT 'admin' AS username, '' AS password "
."WHERE 'a'='a";
if(isset ($_SESSION['loggedin']))