重複の可能性:
正規表現はエラー エコーを生成しません。誰か助けてください。
正規表現が正しくない場合にフォームデータがデータベースに挿入されないようにする方法を知っている人はいますか? おそらくphpでボタンを無効にする方法はありますか(すでにjavascriptでそれを行っています)。
function ValidateForm($string, $type){
switch($type)
{
case 'name':
$pattern="/^[A-Za-z. -]+$/";
break;
case 'sex':
$pattern="/[MWmw]/";
break;
case 'insertion':
$pattern="/^[A-Za-z]*$/";
break;
case 'initials':
$pattern="/^([A-Z]\.)+$/";
break;
case 'adress':
$pattern="/^([A-Za-z -])+[0-9]+([a-z -])*$/";
break;
case 'postcode':
$pattern="/^[1-9][0-9]{3}[]?[A-Za-z]{2}$/";
break;
case 'phone':
$pattern="/^[0-9]{10}$/";
break;
case 'email':
$pattern="/(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{1,}\.)+[0-9a-zA-Z_\-]{2,}$)/";
break;
case 'postbus':
$pattern="/^[A-Z][a-zA-Z -]+$/";
break;
}
if (preg_match($pattern, $string)){
return true;
} else {
return false;
}
}
if (ValidateForm($_POST["surname"],'name')){
$error1 = false;
}else{
$error1 = true;
}
if (ValidateForm($_POST["sex"],'sex')){
$error2 = false;
}else{
$error2 = true;
}
if (ValidateForm($_POST["insertion"],'insertion')){
$error3 = false;
}else{
$error3 = true;
}
if (ValidateForm($_POST["initials"],'initials')){
$error4 = false;
}else{
$error4 = true;
}
if (ValidateForm($_POST["name"],'name')){
$error5 = false;
}else{
$error5 = true;
}
if (ValidateForm($_POST["adress"],'adress')){
$error6 = false;
}else{
$error6 = true;
}
if (ValidateForm($_POST["postcode"],'postcode')){
$error7 = false;
}else{
$error7 = true;
}
if (ValidateForm($_POST["postbus"],'postbus')){
$error8 = false;
}else{
$error8 = true;
}
if (ValidateForm($_POST["private_phone"],'phone')){
$error9 = false;
}else{
$error9 = true;
}
if (ValidateForm($_POST["mobile_phone"],'phone')){
$error10 = false;
}else{
$error10 = true;
}
if (ValidateForm($_POST["work_phone"],'phone')){
$error11 = false;
}else{
$error11 = true;
}
if (ValidateForm($_POST["work_email"],'email')){
$error12 = false;
}else{
$error12 = true;
}
if (ValidateForm($_POST["private_email"],'email')){
$error13 = false;
}else{
$error13 = true;
}