1

送信されたフォーム データを検証する必要があります。

  1. フィールドが空かどうかを確認します。
  2. 空でないデータの検証に進みます。

x – スペース、アンダースコア、aplha 数字のみを許可します。y – 画像かどうかをチェックします。

以下のコードを使用していますが、動作しません。検証および印刷エラーではありません。

<?php
$validate = array(
    '/^[a-z\d ]{4,20}$/i' => array('$x' => 'Please enter valid name.'),
    '/^[a-z\d ]{4,20}$/i' => array('$y' => 'Please enter a real category.')
);

$error = '';

foreach ($validate as $key => $field)
{
    if (preg_match($key,$field[0]))
    {
       $error.= $field[0];
    }
}

if ($error)
{
    echo $error;
    exit;
}
4

2 に答える 2

1

filter_var関数を使用します。そこに必要なオプションがあります。

于 2012-06-19T08:40:21.597 に答える
1

送信された文字列 ($x と $y)ではなく、エラー メッセージに対して正規表現を照合しています。

あなたはおそらく次のようなことをするでしょう:

$validate = array(
    '/^[a-z\d ]{4,20}$/i' => array($x, "Please enter valid name."),  //change here
    '/^[a-z\d ]{4,20}$/i' => array($y, "Please enter a real category.") //change here
);

$error = '';
foreach ($validate as $key => $field)
{
    if (preg_match($key,$field[0]))
    {
       $error.= $field[1]; //change here
    }
}

if($error)
{
    echo $error;
    exit;
}

アップデート

どのように私はそれを行うだろう.

$validate = array(
    array($x, '/^[a-z\d ]{4,20}$/i', "Please enter valid name."),
    array($y, '/^[a-z\d ]{4,20}$/i', "Please enter a real category."),
    array($phone, '/^\(?[0-9]{3}\)?|[0-9]{3}[-. ]? [0-9]{3}[-. ]?[0-9]{4}$/' , "Please enter a valid phone number")
);

$error = '';
foreach ($validate as $validation)
{
    if (!preg_match($validation[1],$validation[0]))
    {
       $error .= $validation[2]; 
    }
}

if($error != '')
{
    echo $error;
    exit;
}

$validate今はあなたのフィールドの配列であり、それぞれがエラーメッセージ、それを照合するための正規表現、および送信された件名を含む独自の配列で表現されています。

于 2012-06-19T08:44:25.980 に答える