簡體   English   中英

當用戶按下Submit時,我將如何驗證(使用PHP)表單? 想要確保我從概念上了解這一點

[英]How would I go about validating (using PHP) a form when the user presses submit? Want to make sure I understand this conceptually

我試圖理解這一點,但遇到了一些麻煩。

基本上,我有一個帶有一些輸入的表格。 我將表單操作設置為腳本,該腳本將在提交后將一些內容輸出到新頁面並通過電子郵件發送給用戶。 大。

我的問題是驗證他們的輸入時。 我想確保沒有任何字段留空。 並且如果它們留為空白,則當用戶按下“提交”時,我希望重新加載頁面,突出顯示保留為空的框並保留其先前信息。

我只是不明白我該怎么做。 我以為我可以重新輸出HTML,但突出顯示字段。 可以,但是代碼很冗長,URL與以前不同,因為URL是處理腳本的位置。 我以為可以在處理腳本中對其進行驗證,然后將其重定向回原始頁面,但是我無法保留其輸入並標記其空輸入。

我已經在Google周圍搜索並嘗試找到合適的解決方案,其中很多人都在處理這個問題,他們在初始表單頁面上有一個php腳本,在表單上檢查用戶是否點擊了提交,並在其中進行了驗證並輸出結果(例如此處的本教程: http : //papermashup.com/php-form-validation/ )。 很酷,但是我有一些疑問。

  • 這與提交時觸發的JavaScript解決方案有何不同? 我為什么不那樣做呢?
  • 如何在表格上方放置它? 我以為代碼是從上到下閱讀的,所以當它命中表單並且您命中了Submit時,我看不到上方的表單將如何觸發。
  • 我不能用此解決方案影響CSS,可以嗎? 如使方框以紅色突出顯示?
  • 如果可以通過驗證,我該如何允許他們進入處理腳本? 我將其作為表單上的action屬性,但這似乎阻止了它。

正確的方法是什么? 我很困惑

有太多的方法可以做到,首先php是服務器端語言,我假設您知道並且關於驗證,它不能像javascript(客戶端)一樣在onsubmit事件上進行驗證

一種解決方案是在主頁上驗證表單

我寫得這么快,請檢查我是否錯過了引號或...但是應該這樣做

<?php

$redirect_form="";
$highlight_field="";
$error="";
$valid=true;

if(isset($_POST["submit"]) && $_POST["submit"]=="Submit"){ //assuming that you have an input text called: first_name

$first_name=trim($_POST["first_name"]);

if($first_name==""){
$error.="Please enter your first name";
$highlight_field="class='highlight_field'";
$valid=false;
}

if($valid){

$redirect_form="<form name='new_page' action='new_page.php' method='post'>";
$redirect_form="<input type='hidden' name='first_name' value='".$first_name."' />";
$redirect_form="</form>";
$redirect_form="<script type='text/javascript>document.new_page.submit()</script>";

}

?>

<html>
<head>
<style>.highlight_field: color:#990000; </style>
<body>
<?php

if(isset($_POST["submit"]) && $_POST["submit"]=="Submit"){

if(!$valid){
echo error;
}
else{
echo $redirect_form;
}
?>

<form name='main_page' action='main_page.php' method='post'>
<span <?php echo $highlight_field; ?>>First name</span><input type='text' name='first_name' value='' />
<input type='submit' name='submit' value='Submit' />

</form>

</body>
</head>
</html>

或者你可以用ajax做到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM