0

助けていただけないでしょうか。PHP を使用して、html フォームから MySQL DB にデータを渡しています。すべてのフィールドが検証されましたが、DB に入る前にすべてのデータを検証したいと考えています。

たとえば、「名前」フィールドに十分な文字が入力されていない場合はユーザーに通知されますが、電子メール アドレスが正しく検証された場合は、データが DB に挿入されます。どうすればそれを行うことができますか?

    // check the length of 'name' field if between 2 and 50 characters

    if ((strlen($name) < 2 || strlen($name) > 50)) {
        echo "The name is invalid, must be between 2 and 50 chearacters.";
        exit;

    }

    echo "</br>";

    // check field name contains numbers
    if (preg_match('#[0-9]#',$name)){ 

        echo 'The name is invalid, its contains numbers. Please go back and try again.';
    }  

    echo "</br>";

    // Check if email is valid. If not tell the user it is invalid

    $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
    if (!preg_match($regex, $emailaddress)) {
            echo "Invalid email address. Please go back and try again.";
    }

  // insert the data from the registration form into the DB  
  mysql_query("INSERT into customers 
      (cs_name, cs_emailaddress) 
      VALUES
  (
  '".$name."', '".$emailaddress."',
  )
  ")
  or die(mysql_error()); 
4

2 に答える 2

1

mysql_query() が呼び出される前にスクリプトを終了させるか、何か問題が発生したときに false に設定する $isValid 変数を最初は true に作成します。そして、mysql_query の前に条件を置きます。

if ($isValid === true)
{
    mysql_query(...
}
于 2012-09-06T12:01:09.260 に答える
-1

jquery フィールド検証を使用してみることができます。valid()jqueryには、フィールドがすべて有効かどうかを確認できる関数があります。

true が返された場合valid()は、mysql 操作を実行します。必要に応じて ajax 呼び出しを使用できます。

于 2012-09-06T12:01:50.367 に答える