PHP不像ASP.NET或呈三角幀,其中模板工程和代碼是分開的。如果你不考慮其他框架像Symfony的或CakePHP的你需要打印完整的HTML輸出中,以瀏覽器:
<?php
$field_email = $_POST['email'];
$field_message = $_POST['message'];
$mail_to = '[email protected] ';
$subject = 'Message from a site visitor '.$field_name;
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
?>
<html>
<head>
<title>Email result</title>
</head>
<body>
<div>
<?php
if ($mail_status){
echo "Thanks for your mail...";
}else{
echo "Please correct your data.";
}
?>
</div>
</body>
而對於表單驗證,你可以使用javasctipt:
<div id="main-content">
<div class="text-intro"><h2>CONTACT</h2></div>
<div id="thanks"></div>
<div class="columns features">
<br />
<form action="contact.php" method="post" id="contact-form" class="contact-form" onsubmit="return validate()>
<textarea id='message' maxlength='10000' name='message' placeholder='Hello...'> </textarea>
<div class='crayonico'></div>
<input class='text-input' id='senderEmail' maxlength='50' name='email' placeholder='E-Mail' type='email'>
<div class='emailico'></div>
<input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' value='SEND'">
</form>
<br /><br /><br /><br /><br />
</div>
<script language="javascript">
function validate()
{
// for example I check sender email
if (document.getElementById ('senderEmail').value.length > 0)
return true;
else
alert ("Sender address required");
return false;
}
</script>
但是請記住,使用javascript進行驗證是不夠的,因爲用戶可以簡單地繞過這個檢查操作系統,因此考慮再次檢查PHP代碼中的所有內容
OK,這裏是一個完整的樣品,但請注意,這不是寫得很好,完整的代碼這僅僅是開始時的樣本:
<html>
<head>
<title>Email result</title>
</head>
<body>
<?php
// function to compose email
function sendMail ($sender, $message) {
$mail_to = '[email protected] ';
$subject = 'Message from a site visitor '.$field_name;
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
return mail($mail_to, $subject, $body_message, $headers);
}
// check if form submited?
if (isset ($_POST['sendMessage'])) {
$email = trim ($_POST['email']);
$message = trim ($_POST['message']);
if ($email == null || strlen ($email) == 0) {
$alert = "Sender address required.";
} else if ($message == null || strlen ($message) == 0) {
$alert = "Empty messages is not allowed.";
} else if (sendMail ($email, $message)) {
$alert = "Thanks for your mail...";
} else {
$alert = "Please correct your data.";
}
}
?>
<?php if (isset ($alert)): ?>
<div style='color: red; font-weight: bold;'><?php echo $alert ?></div>
<?php endif; ?>
<div id="main-content">
<div class="text-intro"><h2>CONTACT</h2></div>
<div id="thanks"></div>
<div class="columns features">
<br />
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id="contact-form" class="contact-form" onsubmit="return validate()">
<textarea id='message' maxlength='10000' name='message' placeholder='Hello...'></textarea>
<div class='crayonico'></div>
<input class='text-input' id='senderEmail' maxlength='50' name='email' placeholder='E-Mail' type='email'>
<div class='emailico'></div>
<input class='btn btn-input' id='sendMessage' name='sendMessage' type='submit' value='SEND'>
</form>
<br /><br /><br /><br /><br />
</div>
<script language="javascript">
function validate()
{
// for example I check sender email
if (document.getElementById ('senderEmail').value.length > 0)
return true;
else
alert ("Sender address required");
return false;
}
</script>
</body>
</html>
爲了讓JavaScript更容易,您還可以使用jQuery或類似的庫。 – Boynux 2013-02-26 11:55:27
不幸的是,它不工作,我想如果有不多於一封信到電子郵件字段,Java的反應...是不是? – 2013-02-26 13:27:05
哪部分不工作? JavaScript的?其實我沒有測試代碼,只是在飛行中寫下來。我會檢查它併發布更新。 – Boynux 2013-02-26 13:31:32