2010-08-07 11 views
0

這是我的登錄PHP代碼。PHP - 如何以體面的方式顯示此服務器錯誤

<?php // rnlogin.php 
include_once 'rnheader.php'; 
echo "<h3>Member Log in</h3>"; 
$error = $user = $pass = ""; 

if (isset($_POST['user'])) 
{ 
$user = sanitizeString($_POST['user']); 
$pass = sanitizeString($_POST['pass']); 

if ($user == "" || $pass == "") 
{ 
    $error = "Not all fields were entered<br />"; 
} 
else 
{ 
    $query = "SELECT user,pass FROM rnmembers 
     WHERE user='$user' AND pass='$pass'"; 

    if (mysql_num_rows(queryMysql($query)) == 0) 
    { 
    $error = "Username/Password invalid<br />"; 
    } 
    else 
    { 
    $_SESSION['user'] = $user; 
    $_SESSION['pass'] = $pass; 
    die("You are now logged in. Please 
     <a href='rnmembers.php?view=$user'>click here</a>."); 
    } 
} 
} 

echo <<<_END 
<form method='post' action='rnlogin.php'>$error 
Username <input type='text' maxlength='16' name='user' 
value='$user' /><br /> 
Password <input type='password' maxlength='16' name='pass' 
value='$pass' /><br /> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
<input type='submit' value='Login' /> 
</form> 
_END; 
?> 

正如您所看到的錯誤消息打印回顯。 有沒有一種方法可以將此錯誤消息放入控件中並僅在出現錯誤時才顯示它?

這聽起來像我必須結合PHP和JavaScript?

Gmail使用以下代碼顯示錯誤消息。 即使關閉了JavaScript,它也能正常工作。換句話說,他們使用一些獨立於JS的技術。

任何想法,我怎麼能在這裏做類似的事情?

<code> 
       <td align="left"> 
        <div id="errormsg_0_Passwd" class="errormsg"> 
        The username or password you entered is incorrect. 
        [<a target="_blank" name="helpLink" href="http://www.google.com/support/accounts/bin/answer.py?answer=27444&amp;hl=en&amp;ctx=ch_ServiceLoginAuth&amp;p=mail">?</a>] 
        </div> 
        </td> 
</code> 

謝謝

回答

2

有沒有我可以在控制把這個錯誤信息,只顯示它,如果有錯誤的方法嗎?

在PHP中你可以做任何事情。想要把這個錯誤消息放在一個控件中?將其納入控制

if ($error) $error = "<control>$error</control>"; 

您必須區分字符串操作和回顯。
回顯字符串不是字符串操作的唯一方法。
您可以先準備好您的字符串,然後將其回顯出來。
因此,您可以先準備好字符串的所有部分,然後將它們一起打印出來。

另外,還有另一種輸出HTML的方式,一種是首選。

<?php 
// your php code here 
//before output we close PHP tag and use pure HTML 
//with some PHP specks 
?> 

<form method="post" action="rnlogin.php"> 
<?php if($error): ?> 
<code> 
    <td align="left"> 
    <div id="errormsg_0_Passwd" class="errormsg"> 
     <?php echo $error ?> 
    </div> 
    </td> 
</code> 
<? endif ?> 
Username <input type='text' maxlength='16' name='user' 
value='$user' /><br /> 
Password <input type='password' maxlength='16' name='pass' 
value='$pass' /><br /> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
<input type='submit' value='Login' /> 
</form> 
+0

Hello Col. 謝謝您的意見。我想我從你那裏得到了基本的想法。 祝福 – q0987 2010-08-08 14:32:30

0

您的回答留在您的問題中!

你宣佈$error=""利用這個,

檢查這樣

if($error!="") echo $error; 

任何人在我看來,做這樣的錯誤是否存在,那麼顯示它其他明智的做休息。

爲此,你可能需要改變你的代碼..

使HTML部分出來的PHP代碼和HTML部分使用PHP標籤內再次顯示錯誤消息。

在我的觀察中,您還需要對html有點知識。

相關問題