if(!preg_match( "/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/", $usermail){
    echo "邮件地址错误~! ";
}else{
// do……
}过滤用户输入的非法字符,可以参照这个改
http://expert.csdn.net/Expert/topic/2200/2200926.xml?temp=.0688898function clean_value($val) {
if ($val == "")
     {
     return "";
     }
$val = trim($val);
$val = str_replace("", "*", $val);
$val = str_replace( " "       , " "             , $val );
$val = str_replace( "&"            , "&"         , $val );
$val = str_replace( "<!--"         , "&#60;&#33;--"  , $val );
$val = str_replace( "-->"          , "--&#62;"       , $val );
$val = preg_replace( "/<script/i"  , "&#60;script"   , $val );
$val = str_replace( ">"            , "&gt;"          , $val );
$val = str_replace( "<"            , "&lt;"          , $val );
$val = str_replace( "\""           , "&quot;"        , $val );
$val = preg_replace( "/\|/"        , "&#124;"        , $val );
$val = preg_replace( "/\n/"        , "<br/>"          , $val ); // Convert literal newlines
$val = preg_replace( "/\\\$/"      , "&#036;"        , $val );
$val = preg_replace( "/\r/"        , ""              , $val ); // Remove literal carriage returns
$val = str_replace( "!"            , "&#33;"         , $val );
$val = str_replace( "'"            , "&#39;"         , $val ); // IMPORTANT: It helps to increase sql query  afety.
$val = stripslashes($val);                                     // Swop PHP added backslashes
$val = preg_replace( "/\\\/"       , "&#092;"        , $val ); // Swop user inputted backslashes
return $val;
    }

解决方案 »

  1.   

    if(!preg_match( "/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/", $usermail){
        echo "邮件地址错误~! ";
    }elseif($_POST['pass'] != $_POST['pass1']){
    echo "两次密码输入不同:< ";
    }
    我这里邮箱故意输错,页面提示邮箱错了,但是还继续判断密码是不是相同,我想判断邮箱出错了之后让用户返回直到输入正确后再进行下一个判断怎么做?
      

  2.   

    if(!preg_match( "/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/", $usermail){
        echo "邮件地址错误~! <br>";
        echo "<a href=\"#\" onClick=history.go(-1)>返回</a>";
        exit;
    }elseif($_POST['pass'] != $_POST['pass1']){
    echo "两次密码输入不同:< ";
    }