简单的PHP表单验证?

时间:2013-12-09 22:47:50

标签: php forms validation

如何验证此代码的输入(并且不保存到文件,除非所有三个字段都填写正确)?

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";
  }
}

谢谢!

2 个答案:

答案 0 :(得分:1)

PHP函数isset()仅检查变量是否已设置为..

当您填写表格并发布时。字段1,2和3将始终为真,因为它包含空字符串。

您需要做的第一件事就是检查字段是否已填满。请使用!empty()代替。

http://www.php.net/isset

答案 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;}

否则处理

我希望它可以帮助你