Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 登录后不重定向_Php_Login - Fatal编程技术网

Php 登录后不重定向

Php 登录后不重定向,php,login,Php,Login,我已经做了一个登录函数,但是当我登录时它不会重定向到正确的页面。有人有解决这个问题的线索吗 下面是我的loginform的部分代码 session_start(); if(isset ($_SESSION['loggedin'])) { header( "Location: account.phtml" ) ; } if (isset($_POST["submit"])) { $username = $_POST ["username"]; $password =

我已经做了一个登录函数,但是当我登录时它不会重定向到正确的页面。有人有解决这个问题的线索吗

下面是我的loginform的部分代码

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']))