ISO輔導驗證
// 啟動會話,用於存儲驗證碼問題和答案 session_start();
// 每次進入表單頁面生成新驗證碼 if ($_SERVER["REQUEST_METHOD"] !== "POST") { $num1 = rand(1, 10); // 隨機數1 $num2 = rand(1, 10); // 隨機數2 $_SESSION['captcha-question'] = "$num1 + $num2"; $_SESSION['captcha-result'] = $num1 + $num2; }
// 初始化消息變量 $errorMessage = null; $successMessage = null;
// 表單數據驗證 if ($_SERVER["REQUEST_METHOD"] === "POST") { // 提取表單數據 $name = trim($_POST['your-name']); $sex = isset($_POST['sex']) ? trim($_POST['sex']) : ''; $email = trim($_POST['your-email']); $fax = trim($_POST['fax']); $subject = trim($_POST['your-subject']); $message = trim($_POST['your-message']); $captchaAnswer = trim($_POST['captcha-answer']); $captchaResult = $_SESSION['captcha-result'] ?? ''; // 獲取存儲的驗證碼答案 $honeypot = trim($_POST['honeypot-1']); // 隱藏字段 Honeypot(防垃圾郵件)
// 表單驗證邏輯 if (empty($name) || empty($sex) || empty($email) || empty($fax) || empty($subject) || empty($message) || empty($captchaAnswer)) { $errorMessage = "請完整填寫所有必填項目!"; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errorMessage = "電子郵件格式不正確!"; } elseif (!ctype_digit($fax)) { $errorMessage = "傳真號碼必須是純數字!"; } elseif ($captchaAnswer != $captchaResult) { $errorMessage = "驗證碼錯誤,請重試!"; } elseif (!empty($honeypot)) { // Honeypot防垃圾郵件 $errorMessage = "檢測到垃圾填寫,表單未被提交!"; } else { // 所有驗證通過 $successMessage = "表單提交成功!我們會盡快與您聯繫。";
// 示例:發送郵件 $to = "example@example.com"; // 替換為您的收件人地址 $subjectLine = "來自 $name 的表單提交"; $body = " 姓名: $name ($sex)n 電子郵件: $emailn 傳真號碼: $faxn 主題: $subjectnn 信息:n$message "; $headers = "From: $email";
// 嘗試發送郵件 if (!mail($to, $subjectLine, $body, $headers)) { $successMessage = "表單提交失敗,請稍後再試!"; } } } ?>
姓名(必填)
性別 男 女
電子郵件地址(必填)
傳真號碼(必填)
主題 (請選擇) 供應商管理 尋找產品或零件
您的信息
防垃圾驗證 驗證問題: =
隱藏字段(Honeypot 防禦垃圾郵件)
提交