我試圖驗證使用php將表單信息發送到一組電子郵件的表單的電子郵件字段。我使用Javascript來驗證電子郵件,它正在工作。使用JS驗證電子郵件的HTML表單,驗證有效,但表單仍然提交
問題是,即使在驗證返回false之後,表單仍然會處理信息併發送電子郵件,但是我還是喜歡一些指導,因爲我無法找到我正在創建的錯誤。
這裏的HTML代碼,我使用的形式:
<form id="formulario-submit" onsubmit="return Validacion();" action="procesarsolicitud.php" method="POST">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<input type="text" value="Nombre*" id="nombre" name="nombre" onclick='this.value = "";'>
</td>
</tr>
<tr>
<td>
<input type="text" value="Apellido*" id="apellido" name="apellido" onclick='this.value = "";'>
</td>
</tr>
<tr>
<td>
<!--<input type="submit" value="Enviar" id="enviar" alt="enviar">-->
<button name="enviar" value="Submit" type="submit" id="enviar" alt="enviar" width="100">
這裏的JS代碼我使用驗證的電子郵件:
<script>
function Validacion()
{
var x=document.forms["formulario-submit"]["email"].value;
var arroba=x.indexOf("@");
var punto=x.lastIndexOf(".");
if (arroba<1 || punto<arroba+2 || punto+2>=x.length)
{
alert("Not a valid Email.");
email.focus();
return false;
}
}
</script>
下面是PHP代碼(在一個名爲procesarsolicitud.php的單獨PHP文件中)用於處理數據併發送電子郵件:
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$message = '
<html>
<head>
<title></title>
</head>
<body>
<h3>Form Data::</h3>
<tr>
<td width="200"><b>Nombre:</b></td>
<td>'.$nombre.'</td>
</tr>
<tr>
<td width="200"><b>Apellido:</b></td>
<td>'.$apellido.'</td>
</tr>
<tr>
<td width="200"><b>Email:</b></td>
<td>'.$email.'</td>
</tr>
<tr>
</tr>
</table><br />
</body>
</html>
';
// multiple recipients
$to='[email protected],[email protected]';
// subject
$subject = ' Email Subject';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n".
'From: Email <[email protected]>' . "\r\n";
echo "MessageExample";
// Mail it
mail($to, $subject, $message, $headers);
在此先感謝。
考慮使用''和瀏覽器填充來支持向後支持,而不是自定義Javascript代碼進行驗證。 – mario