2014-06-21 55 views
-1

我嘗試了一個簡單的代碼來進行登錄......當我提交詳細信息時,它工作得很好..並在屏幕上給出了正確的響應..但是當我第一次在瀏覽器上加載它時它會顯示一條錯誤消息: 注意:未定義的索引:第14行的C:\ wamp \ www \ test \ first.php中的usser 和 注意:未定義的索引:使用C:\ wamp \ www \ test \ first第15行的.php 找不到它存在的問題。使用POST方法進行PHP登錄驗證

<html> 
    <head> 
     <title>My First PHP Program!</title> 
     <link type="text/css" rel="stylesheet" href="stylesheet.css"/> 
    </head> 

    <body> 
     <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
      <p>username <input type="text" name="usser"/></p> 
      <p>password <input type="password" name="pass" /></p> 
      <p> <input type="submit" name="submit" /></p> 
     </form> 
     <?php 
      $name = $_REQUEST['usser']; 
      $pas=$_REQUEST['pass']; 
      if($name=="mandeep"&&$pas=="mani"){ 
       echo "successful"; 
      } 
      else{ 
       echo "Login Failed"; 
      } 
     ?> 
    </body> 
</html> 

回答

0

你必須檢查是否有新職位形式

<?php 
if (!empty($_POST)) { 
    $name = $_REQUEST['usser']; 
    $pas=$_REQUEST['pass']; 
    if($name=="mandeep"&&$pas=="mani"){ 
    echo "successful"; 
    } 
    else{ 
    echo "Login Failed"; 
    } } 
    ?> 
2

您需要驗證該變量是否先設置。如果您使用的是後續操作,我建議您使用$_POST變量。並使用===進行相同的比較。

<?php 
     if (isset($_POST['usser']) && isset($_POST['pass'])){ 
      $name = $_POST['usser']; 
      $pas= $_POST['pass']; 
      if($name === "mandeep" && $pas === "mani"){ 
       echo "successful"; 
      } 
      else{ 
       echo "Login Failed"; 
      } 
     } 
    ?> 

POST php reference
PHP comparison operators

+0

@downvoter爲什麼? –

+0

可能是因爲您在不解釋已更改的內容(編輯之前)的情況下轉儲代碼,回答之前已回答多次的問題,而無法解釋此代碼有哪些錯誤。 – CodeCaster

+0

@CodeCaster好吧,我明白了,謝謝你的反饋 –

0

在加載頁面時,你仍形式後運行在PHP塊中的代碼。

您可以使用isset來驗證它已被設置。