我想清理应该是一个简单的电子邮件脚本的输出,但它只输出一个空白页面。下面是该脚本:为什么这个脚本不能正确清理输出?
<?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