2014-10-12 133 views
-2

我正在做登錄頁面如果用戶未成功登錄,我將使用下面的內容來處理它,這意味着郵件將顯示在文本框pwd的左側。但是當登錄失敗時,消息從未顯示。你能告訴我爲什麼PHP中的echo div問題

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<label>Username:</label> 
<input type="text" name="name" size="10"> </br> 
<label>Password:</label> 
<input type="text" name="pwd" size="10"> </br> 
<?php 
echo '<div style="position:absolute; left:650px; top:25px;float:left">'; 
if (isset($username)) 
{ 
    // if they've tried and failed to log in 
    echo 'Your password is not right<br />'; 
} 
echo '</div>'; 
?> 

<a href="index.html">Register</a> &nbsp 
<input type=submit name=login value=Login> 
</form> 

如果我不把PHP代碼,該消息將被顯示的打擊PWD textbox.But我要的是文本框的左側。我相信問題在於CSS樣式,因爲當我剛定義DIV時只有一個屬性,這就是float左邊的錯誤會顯示pwd文本框,登錄和註冊就會到這個錯誤信息的右邊,這很奇怪的

+0

哪裏'$ username'從何而來? – 2014-10-12 01:45:10

+4

'styel'!='style' – Shomz 2014-10-12 01:45:54

+0

if(isset($ _ POST ['name'])&& isset($ _ POST ['pwd'])) //如果用戶剛剛嘗試登錄 $ username = $ _POST ['name']; $ password = $ _POST ['pwd']; – steven 2014-10-12 01:54:27

回答

0

如果你不使用AJAX,並且你不熟悉它。 試試這個!

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<label>Username:</label> 
<input type="text" name="name" size="10"> </br> 
<?php 
    if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
     if(!empty($_POST['name']) && !empty($_POST['pwd'])){ 
      $name = trim($_POST['name']); 
      $password = trim($_POST['pwd']); # Normally this password is encrypted 

      # Database Connection Here 

      if // if they've tried and failed to log in 
      { 
       echo '<div style="position:absolute; left:650px; top:25px;float:right">Your password is not right<div/>'; 
      } 
     } 
    } 
?> 
<label>Password:</label> 
<input type="text" name="pwd" size="10"> </br> 

<a href="index.html">Register</a> &nbsp 
<input type="submit" name="login" value="Login"> 

更好的解決方案或做法是使用AJAX。使用AJAX,您可以在任何地方顯示錯誤消息。如果你想練去下面的網站鏈接: -

http://www.developphp.com/view.php?tid=1296

+0

謝謝。我修好了 – steven 2014-10-12 05:16:42