如果未填写所有字段,如何给出错误?

时间:2014-12-02 13:37:30

标签: php field

基本上这是我的注册表格。我想这样做,如果没有填写所有字段,将会出错。我该怎么办?我还想将错误显示为$ msg

<?php
include'db.php';
$msg='';
if (empty($_POST[''])
|| empty($_POST['password'])
|| empty($_POST['repassword'])
|| empty($_POST['user_firstname'])
|| empty($_POST['user_lastname'])
){
// details sent Form
$company=mysql_real_escape_string($_POST['company']);
$address=mysql_real_escape_string($_POST['address']);
$email=mysql_real_escape_string($_POST['email']);
$phone=mysql_real_escape_string($_POST['phone']);
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/';        //this defines what a valid email should be

if(preg_match($regex, $email))
{
$activation=md5($email.time()); // Encrypted email+timestamp, so randomly generated and   unique

$count=mysql_query("SELECT uid FROM preciousmetals WHERE email='$email'") or  die(mysql_error());
if(mysql_num_rows($count) < 1)
{
mysql_query("INSERT INTO preciousmetals(company,address,email,phone,activation)    VALUES('$company','$address','$email','$phone','$activation');");



// sending email

include 'smtp/Send_Mail.php';
$to=$email;
$subject="Email verification";
$body='Hello, we need to make sure you are human. Please verify your email and get   started using your Website account. '.$base_url.''.$activation.'';

Mail($to,$subject,$body);

$msg= "Registration successful, please activate email.";    


}
else
{
$msg= '<font color="#cc0000">This email is already in use, please enter a different one.</font>';   
}

}
else
{
$msg = '<font color="#cc0000">The email you have entered is invalid, please try again. </font>';  
}


}
?>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

简单地做

if (empty($_POST['password']) || empty($_POST['repassword']) || empty($_POST['user_firstname']) || empty($_POST['user_lastname'])){
    $msg = 'You have not filled all fiels';
} else {
    // details sent Form
    ......
}
echo $msg;

并且还检查filter_var()以进行电子邮件验证,它比regEx更好 http://php.net/manual/en/filter.examples.validation.php