2013-06-03 130 views
0

我是PHP新手,我只是想在線創建一個圖片庫的密碼錶單。出於某種原因,即使輸入我的密碼,PHP也會迴應'NO'。請幫我理解我的腳本中出了什麼問題。PHP登錄表單?

<body> 
    <div class="main-img"> 
       <img src="images/img/main.jpg" /> 
   </div><!-- END OF MAIN-img --> 
    <form id="myform" method="post"> 
    <input type="text" name="password" placeholder="Enter the password" /> 
       <input name="button" type="submit" value="Go!" id="submit"></input> 
   </form> 

  <?php 
     require("other.php"); 
     if(isset($_POST['button'])) { 
      checkpassword(); 
      return; 
     } 
    ?>  
    <div id="ask"></div> 
</body> 
</html> 

這是我的PHP代碼:

<?php 
function checkpassword() { 
    $pass = mysql_real_escape_string($_POST['password']); 
    if($pass == "password123") { 
     echo("YES"); 
     exit; 
    } else { 
     die("NO"); 
     } 
} 
?> 
+0

很多錯誤的編碼方式,但很少有'1'不要使用mysql函數,'2'不會回顯函數中的任何內容,'3'不要使用()回顯.... – samayo

+0

@phpNoOBఠ_ఠ你的sig長大了眼睛 – Orangepill

+0

@Orangepill沒錯。我保留我的ఠ_ఠ:) – samayo

回答

1

您需要進行一些修改代碼:

HTML文件:

<?php 
    require("other.php"); 
    if(!empty($_POST) && isset($_POST['password'])) { 
     $pass = $_POST['password']; 
     checkpassword($pass); 
    } 
?> 

PHP文件:

<?php 
    function checkpassword($pass) { 
     if($pass == "password123") { 
      echo "Yes"; 
      exit; 
     } else { 
      die("NO"); 
     } 
    } 
?> 

看看是否能幫助你的一點點。

+0

讓'checkpassword'讀取'$ _POST ['password']'有什麼問題? –

+0

@RocketHazmat沒有東西。我只是想,如果它是在一個單獨的文件中,OP可能會使它更加模塊化,因此可以重用。否則,OP可能會將所有這些放在HTML頁面的PHP代碼塊中。儘管如此,你也可以這樣做。它沒有錯。只是一個建議。 :) – War10ck

+1

我其實更喜歡這種方式:) –

3

不要覈對的結果mysql_real_escape_string。在用戶提供的數據反彈到數據庫時使用此函數。

2

您正在使用mysql_real_escape_string而未先連接到數據庫。在進行數據庫查詢時只需要使用它。

所以,只是做if($_POST['password'] == 'password123')