2012-01-23 71 views
1

我遇到了我的一個PHP表單驗證腳本的問題。PHP驗證消息出現在我的用戶表單頂部

基本上,我有一種形式,當用戶提交的信息它(通過PHP)驗證檢查,並且經由回聲語句的結果(成功,ERROR1,誤差2等)輸出

然而,用戶提交後表單(action =相同的頁面,即發佈給自己)驗證消息出現在表單的頂部或旁邊。我希望回顯消息出現在表單下。

這是現在正在發生的事情在頁面:

Error: Your password is incorrect 

Username: 

Email: 

Password: 

Submit Button 

這就是我想要它看起來像:

Username: 

Email: 

Password: 

Submit Button 

Error: Your password is incorrect 

有誰知道如何解決這個問題?

下面是代碼:

<form id="username_check" name="username_check" method="post"> 
<tr> 
<td><b>Username:</b></td> 
<td><input name="Username" type="text" class="textfield" id="Username" 
value="<?php echo($_POST['Username']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Email Address:</b></td> 
<td><input name="email_address" type="text" class="textfield" id="email_address" 
value="<?php echo($_POST['email_address']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Password:</b></td> 
<td><input name="PASSWORD" type="password" class="textfield" id="PASSWORD" /> 
</td> 
</tr> 
<td><input type="submit" name="submit" value="Submit" /></td> 
</form> 
<?php 
//If form was submitted 
if (array_key_exists('submit',$_POST)){ 
//Do something 
echo "Form validation here....."; 
} 
?> 
+0

會需要一些代碼... –

回答

0

如果你是顯示的形式,那麼表單之前顯示的消息之前調用

echo $error_message; 

如果您希望在表單剛打印完表單後移動echo命令後出現錯誤消息。

0

聽起來像是在迴應您的錯誤消息,然後回顯表單。

反過來做。

+0

後,我關閉窗體與下面我有它的另一個PHP代碼當表單點擊提交按鈕應該啓動。 <?PHP //如果表單提交 \t如果(array_key_exists( '提交',$ _ POST)){ //做一些事情 \t回聲 「這是我的表單驗證這裏......」; } ?> –

0

不要回顯錯誤將它保存到一個變量並打印在表單打印後面。

這樣,如果錯誤變量不能爲空表單驗證,簡單的檢查過程中,如果出現錯誤,你也可以檢查每一次/假

2

這取決於代碼的執行順序。如果您正在使用IDE,請在驗證之前設置斷點並逐步完成。否則,我很確定我們需要查看一些代碼來了解爲什麼會發生這種情況。

嘗試:

<form id="username_check" name="username_check" method="post"> 
<table> 
<tr> 
<td><b>Username:</b></td> 
<td><input name="Username" type="text" class="textfield" id="Username" 
value="<?php echo($_POST['Username']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Email Address:</b></td> 
<td><input name="email_address" type="text" class="textfield" id="email_address" 
value="<?php echo($_POST['email_address']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Password:</b></td> 
<td><input name="PASSWORD" type="password" class="textfield" id="PASSWORD" /> 
</td> 
</tr> 
<td><input type="submit" name="submit" value="Submit" /></td> 
</table> 
</form> 
<?php 
//If form was submitted 
if (array_key_exists('submit',$_POST)){ 
//Do something 
echo "Form validation here....."; 
} 
?> 
+0

如果您在沒有if語句的情況下回顯驗證代碼,它是否仍然呈現在表單的頂部?我假設上面的代碼是你正在做的事情的一個非常簡化的版本。是否有任何封裝的div或table標籤可能導致這種情況,並用CSS或幾行換行補救? – Jason

+2

其實,這是你的問題。 http:// stackoverflow。com/questions/5967564/form-inside-a-table 表格不能在表格元素內處理。 – Jason