如何验证此代码的输入(并且不保存到文件,除非所有三个字段都填写正确)?
field1 =姓名(名字和姓氏)
field2 =格式为xxxx#1111的文本
field3 =电子邮件
if(isset($_POST['field1']) && isset($_POST['field2']) && isset($_POST['field3'])) {
$data = $_POST['field1'] . '-' . $_POST['field2'] . '-' . $_POST['field3'] . "\n";
$ret = file_put_contents('submissions.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
}
else {
echo "$ret bytes written to file";
}
}
谢谢!
答案 0 :(得分:1)
PHP函数isset()仅检查变量是否已设置为..
当您填写表格并发布时。字段1,2和3将始终为真,因为它包含空字符串。
您需要做的第一件事就是检查字段是否已填满。请使用!empty()代替。
答案 1 :(得分:0)
$errors = array();
if (isset($_POST)){
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",trim($_POST['email'])))
{
$errors[] = "Invalid email format";
}else{
$email = trim(strip_tags($_POST['email']));
}
if (strlen(trim($_POST['firstname])) <=0){
{
$errors[] = "Invalid firstname format";
}else{
$firstname = trim(strip_tags($_POST['firstname']));
}
}
等等
最后
if count($errors)>0){ 'explode errors;}
否则处理
我希望它可以帮助你