PHP表单验证 - 可能的字符集问题

时间:2013-01-14 20:57:14

标签: php regex validation

以下是验证页面的一部分。一般来说它工作得很好。该网站的体积很小,所以不太关心速度的优化。我的问题是有些用户没有验证有效数据。大多数用户没有任何问题。例如,客户输入了'2881 Hayden Creek Terrace'的街道地址,验证不会清除它。我对此很新,所以可能这些类型的东西很常见,但我猜测问题在于客户浏览器中的字符集。这可能是我应该研究的内容吗?有没有人看到代码有任何重大问题?

function validation_payment($_check='') {

    $_error = '' ;

    foreach( $_POST as $key => $value ) {

    $value = preg_replace( "/[^\w@&#,\-\.\s\!\?]/",'',$value ) ;
    $value = preg_replace( "/\s\s+/"," ",$value ) ;
    //echo $value.'</br>' ;
    $_POST[$key] = $value ;

    switch ($key) {

        case 'ADDRESS_STREET_LINE1':
            $value = preg_replace("/[^\w,\-\.\s]/","",$value) ;
            if( empty($value) ) {
                $_error = "Error: Please make sure the Street Address entered on LINE 1 is not blank.<br/>" ;
            }elseif( !preg_match("/\s/",$value) ) {
                $_error .= "Error: The Street Address on LINE 1 does not appear to contain a street location and street name. Please review it for accuracy.<br/>" ;
            }elseif( !( strlen($value) < 100 ) ) {
                $_error .= 'Error: The Street Address entered on LINE 1 contains too many characters.<br/>' ;
            }else{
                $_SESSION['BILLING'][$key] = $value ;
            }
            break ;

}

0 个答案:

没有答案