0
我一直在構建php表單一段時間,並已通過驗證的各個階段。我已經解決了與PHP驗證。然而;我不知道如何殺死腳本或中止提交如果驗證失敗。我原以爲它會像exit()
如果驗證失敗,則中止提交php
這是我在的地方;
// condition
$cont = '';
$msg = '';
// define variables and set to empty values
$fnameErr = $lnameErr = $titleErr = $emailErr = $dayErr = $monthErr = $timeErr = $chkErr = "";
$fnameField = $lnameField = $titleField = $emailField = $daySelect = $monthSelect = $timeSelect = $chk = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["time"])) {
$timeErr = "Please select a time from the list";
exit();
} else {
$timeSelect = test_input($_POST["time"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if (isset($_POST['btn-sub'])) {
// code executed on submit
$headers = "From: $emailField\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($emailAcc, $emailSub, $body, $headers);
if(!$success) {
$cont = "<b>Fatal Error:</b> Mail was not sent successfully.";
exit();
} else {
$cont = "Success! Thank you! <br/> We'll see you there...";
$msg = "Someone will be in touch with you shortly to confirm your details. Please check the supplied informaiton is correct below;";
}
} else {
// code executed on first request
}
任何推動我可以得到正確的方向將有很大的幫助。
注意: 我只包括我的一個驗證,以保持帖子更緊湊一點。
**在聊天中回覆** 我自己的愚蠢導致了這個問題。 (我只是設置變量,如果他們沒有被調用,腳本將永遠不會達到exit();
感謝所有的屁股。
您可以使用出口();或死亡();,都將停止此刻的腳本的執行,他們被稱爲唯一的原因,該腳本不會 –
爲什麼它不能到達'exit();'變量'$ timeErr'被調用的很好,不應該'exit();'那麼下一個呢? – Beaniie
我不明白你被稱爲變量的變量意味着什麼。你當前的代碼不會在任何地方輸出$ timeErr,所以你怎麼知道它是否被調用。儘管如此,試一下簡單。添加echo「test」; exit();在你的代碼的頂部,在這種情況下你的腳本應該只輸出測試,而不會做其他事情。 –