簡體   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