2016-02-08 23 views
0

中練習一個簡單的會話代碼,但有些頁面沒有顯示任何錯誤消息。也不會重定向到成功登錄後要重定向的頁面。我想在主頁被重定向登錄頁面,並顯示該消息並單擊註銷鏈接時,頁面重新回到登錄頁面我想在我的房子xamp

<?php  
    session_start(); 
    error_reporting(E_ALL^E_NOTICE); 
    ?> 
    <?php 
     if($_REQUEST["logout"]=='yes'){ 
     unset($_SESSION["login"]); 
     } 
    ?> 
    <html> 
     <body> 
      <form action="" method="post"> 
       <label>Username</label><input type="text" name="unametxt" value="<?php echo $_post["unametxt"]; ?>" /> 
       <label>Password</label><input type="password" value="<?php echo $_post["password"]; ?>" /> 
       <input type="submit" name="sbt" value="Login"> 
      </form> 

      <?php 
       if(isset($_post["sbt"])) 
       { 
        if($_post["unametxt"]== "debarun" && $_post["password"]=="1234") 
        { 
         $_SESSION["login"]="yes"; 
         $_SESSION["uname"]=$_post["unametxt"]; 
         $_SESSION["passwd"]=$_post["password"]; 

         header('location:home.php'); 

         } 
        else 
        { 
         echo "Please enter correct credentials"; 
         } 
        } 
      ?> 
     </body> 
    </html> 



    and it is my home page script: 

    <?php 
    session_start(); 

    if(!isset($_SESSION["login"])){ 
     session_destroy(); 
     header('location:login.php'); 

    } 

    else{ 
     echo "Welcome".$_SESSION["uname"]."<br/>"."your password is".$_SESSION["passwd"]; 
     } 

    ?> 

<html> 
    <body> 
     <form action="" method="post"> 
      <a href="login.php?logout=yes">Logout</a> 
     </form> 
    </body> 
</html> 

please 

告訴我,爲什麼它不工作?

回答

0

第一件事$_post必須啓動字母大小寫這樣$_POST然後你忘了指定name="password"到密碼輸入欄 看看

<?php  
    session_start(); 
    error_reporting(E_ALL^E_NOTICE); 
    ?> 
    <?php 
     if($_REQUEST["logout"]=='yes'){ 
     unset($_SESSION["login"]); 
     } 
    ?> 
    <html> 
     <body> 
      <form action="" method="post"> 
       <label>Username</label><input type="text" name="unametxt" value="<?php echo $_POST["unametxt"]; ?>" /> 
       <label>Password</label><input type="password" name="password" value="<?php echo $_POST["password"]; ?>" /> 
       <input type="submit" name="sbt" value="Login"> 
      </form> 
      <?php 
       if(isset($_POST["sbt"])) 
       { 
        echo $_POST["password"]; 
        if($_POST["unametxt"] == "debarun" and $_POST["password"] == "1234") 
        { 
         $_SESSION["login"]="yes"; 
         $_SESSION["uname"]=$_POST["unametxt"]; 
         $_SESSION["passwd"]=$_POST["password"]; 

         header('location:home.php'); 

         } 
        else 
        { 
         echo "Please enter correct credentials"; 
         } 
        } 
      ?> 
     </body> 
    </html> 
+0

我已經試過這段代碼,它的工作。但有一件事我不明白,無論何時我將它複製並粘貼到Dreamweaver中的代碼正在工作,但是如果對我的腳本進行類似的更改,它將顯示相同的問題。你能解釋爲什麼嗎? –

+0

在您的代碼中再次查看,或者您可以將其粘貼到此處以檢測問題來自哪裏 –

1

將所有這些驗證碼放在頂部。在重定向之前,不應將任何內容發送到瀏覽器。甚至沒有空行。

而且,使L的位置資本

header("Location: home.php"); 
+0

非常感謝你。 ..因爲我從頭開始學習,所以我犯了這些錯誤。非常感謝你把我所有的flwas帶入我的通知......但我已經試過所有這些和問題是相同的。在輸入憑證後,它將重新加載到它自己的頁面。但是當我輸入時顯示錯誤信息錯誤的憑據。 任何解決方案? –

1

添加name在您的密碼元素的屬性。因此,它無法從$_POST陣列中獲取,並且您的狀況總是會失敗。

試試這個,

<label>Password</label><input type="password" name="password" value="<?php echo $_post["password"]; ?>" />