2011-06-07 61 views
1

我想寫我的第一個PHP腳本(希望)。我想將用戶輸入從HTML頁面中的表單發送到PHP腳本並在腳本中對其進行驗證。那麼,如果輸入數據有任何問題,請返回第一頁並突出顯示錯誤的字段。否則轉到另一個頁面(類似成功)。如何使用POST不使用表單將變量從PHP腳本發送到另一個腳本?

如何在不使用表單的情況下將第二個腳本的反饋發送到第一頁?例如,

+2

嘗試使用[sessions](http://www.php.net/manual/en/book.session.php)。 – 2011-06-07 19:01:08

+0

你的意思是,如果輸入不正確,你將如何重定向到輸入表單? – 2011-06-07 19:01:39

+0

您可以在您的驗證腳本中將錯誤變量(不是整個錯誤消息,只是一些代碼)添加到原始URL併發送用戶,然後使用GET獲取錯誤消息。或者你可以在驗證頁面中將錯誤添加到json中,如果它不是空的,則將json發送到html頁面。 – 2011-06-07 19:02:36

回答

2

只是讓你表單POST給自己,然後在你的PHP檢查值,如果它們是有效的,不會顯示你的形式和做你的提交代碼。如果它們無效,則顯示帶有值和錯誤顯示的表單。

+0

...然後,只是評估驗證腳本從另一個文件?這是個好主意!謝謝。 – 2011-06-07 19:11:23

2

重新加載第一頁並在會話中發送反饋。如果session ['errors']存在,則回顯它們。注意你必須在你的html頁面中包含一些php標籤。

3

總之,你有這樣的事情:

<?php 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $errors = array(); 

    $name = $_POST['name']; 
    if ($name !== 'Fred') { 
     $errors[] = 'Please enter "Fred"'; 
    } 

    ... validate more fields ... 

    if (count($errors) == 0) { 
    ... form is ok ... 
    header('Location: everything_is_ok.php'); 
    exit(); 
    } 
} 

?> 

<form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="POST"> 
Enter 'Fred': <input type="text" name="name" value="<?php echo htmlspecialchars($name) ?>" /><br /> 
<input type="submit" /> 
</form> 

基本上是:有表單頁面提交回發到自身。如果一切正常,請將用戶重定向到另一個頁面。否則,重新顯示錶單。

+0

與James P. Wright的答案相同......謝謝。 – 2011-06-07 19:12:48

+0

是的,但他實際上花時間顯示代碼。 :P – 2011-06-07 19:37:40

相關問題