我想清理應該是一個簡單的電子郵件腳本的輸出,但它只輸出一個空白頁面。下面是該腳本:爲什麼這個腳本不能正確清理輸出?
<?php
define("EMAIL", "[email protected]");
if(isset($_POST['submit'])) {
//include validation class
include('./support/validate.class.php');
//assign post data to variables
$_POST['name'] = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$_POST['email'] = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$_POST['message'] = filter_var($_POST['message'], FILTER_SANITIZE_STRING);
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
//start validating our form
$v = new validate();
$v->validateStr($name, "name", 3, 75);
$v->validateEmail($email, "email");
$v->validateStr($message, "message", 5, 1000);
if(!$v->hasErrors()) {
$header = "From: $email\n" . "Reply-To: $email\n";
$subject = "email from silentpost.net website!";
$email_to = EMAIL;
$emailMessage = "Name: " . $name . "\n";
$emailMessage .= "Email: " . $email . "\n\n";
$emailMessage .= $message;
@mail($email_to, $subject ,$emailMessage ,$header);
} else {
//set the number of errors message
$message_text = $v->errorNumMessage();
//store the errors list in a variable
$errors = $v->displayErrors();
//get the individual error messages
$nameErr = $v->getError("name");
$emailErr = $v->getError("email");
$messageErr = $v->getError("message");
}//end error check
}// end isset
?>
如果我忽略了下面的代碼,腳本會運行良好:
$_POST['name'] = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$_POST['email'] = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$_POST['message'] = filter_var($_POST['message'], FILTER_SANITIZE_STRING);
如果必要的話,我將包括類,但我不認爲這是一個問題與類,因爲正確地刪除filter_var行輸出。
任何幫助,將不勝感激。
你不應該assing過濾瓦爾回張貼。將它們放入您在下一個塊中修剪的相同變量中。你也確定這些項目實際存在'$ _POST'作爲字符串嗎? – prodigitalson
您還可以使用'$ xyz = trim(filter_var($ _ POST ['xyz'],FILTER _...));'以及來自@prodigitalson的評論。因此,如果出現問題,filter_var應該返回FALSE,而不是終止腳本。 –
是的,項目存在(驗證類檢查) – dstrunk