繁体   English   中英

PHP登录表单不会重定向到另一个页面

[英]PHP Login form doesn't redirect to another page

验证过程运行良好,但不会重定向到新的“ profile.php”页面。 请让我知道我要去哪里了。

这是html表单。

<form name = "fomu_kuingia" action = "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method = "POST">

        <br><br> Barua pepe: <input type="text" name="baruapepe"  />
          <span class = "error" style = "color: #DC143C;"> <?php echo $tatizo;  ?></span>  

        <br><br> Neno la siri:  <input type="password" name="nenosiri" />
         <span class = "error" style = "color: #DC143C;"> <?php echo $tatizo1;  ?></span>

         <br><br><input type="button" value="Nimesahau" name="nimesahau" /><input type="submit" value="Ingia " name="ingia "  />
          <span class = "error" style = "color: #DC143C;"> <?php //echo $jinaErr; ?></span>


        </form>

这是获取数据的php函数(电子邮件/已通过)

 <?php
           //$pepe = " ";
          // $siri = " ";



           function take_data()
        {    $pepe = "";
             $siri = "";

           if ($_SERVER["REQUEST_METHOD"] == "POST")
           {
               if (empty ($_POST["baruapepe"])||empty ($_POST["nenosiri"]))
                {  echo "<font color = '#DC143C' > TATIZO: Tafadhali ingiza barua pepe au neno siri </font>" ;  }


                else {  $pepe = verify($_POST["baruapepe"]);
                        $siri = verify($_POST["nenosiri"]);

                        kuingia ($pepe, $siri); }
           }
         }

           ?>

这里是否有验证数据的功能; php功能;

 <?php
           //$pepe = " ";
          // $siri = " ";

           function verify ($data)
           {
               $data = trim ($data);
               $data = stripslashes($data);
               $data = htmlspecialchars($data);
               return $data;
           }


           ?>

最后,该功能将检查日志(电子邮件,密码)详细信息并重新定向到新页面。

<?php
           //$pepe = " ";
          // $siri = " ";


           function kuingia ($pp, $sr)
           {
               $con = mysql_connect('localhost', 'root', 'root');

               if (!$con)
               { echo "Connection was not possible ";}

               else 
               {
                   mysql_select_db('DalaliOnline', mysql_connect('localhost', 'root', 'root'));
                   $result = mysql_query("select jina1, jina2 from watumiaji where barua_pepe = '$pp' and neno_siri = '$sr' ");

                   if (!$result)
                   {    echo "Tatizo la mysql"; }

                   else if  (mysql_num_rows($result)== 0)
                   {    echo "<font color = '#DC143C' > TATIZO: Barua pepe au neno siri vimekosewa </font>" ;   }

                   else 
                   { header ("Location:profile.php");
                       echo "umefanikiwa kuingia"; }
               }
           }



           ?>

您的header()调用正在发送Location标头的相对路径。

根据PHP文档header() ,HTTP / 1.1规范需要一个绝对URL:

HTTP / 1.1需要绝对URI作为»位置的参数:包括方案,主机名和绝对路径,但是某些客户端接受相对URI。 通常,您可以使用$ _SERVER ['HTTP_HOST'],$ _ SERVER ['PHP_SELF']和dirname()从您自己的亲戚那里创建绝对URI

它看起来像你还缺少冒号之间的空间( : )和头的内容。

另一个常见的陷阱(尽管我在上面的代码中没有看到它)是,如果您已经将任何输出发送到浏览器,则无法调用header()

标头位置应该是绝对网址,并且Location:和网址之间应该有一个空格 ,即;

header ("Location: http://yoursite.com/profile.php");

另外,在发送该标头之前,请确保没有任何内容输出到浏览器。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM