1

動的な if ステートメントを作成しようとしています。これを行う理由は、入力フィールドが正規表現と一致し、空でないかどうかをサーバー側で確認する必要があるためです。ただし、入力フィールドの一部は CMS で削除できます。つまり、それに応じて入力フィールドが増減します。

理想的には、if ステートメントに変数を追加しますが、それが許可されているかどうか 100% 確信が持てないため、おそらくこの問題を解決するには別の方法が必要になるでしょう。これが私が試したことです:

if ($f_naw['streetname'] == 1)
{
    $streetname= $_POST['streetname']; //Used in INSERT query
    $cstreetname = " || $_POST['streetname'] == ''"; //Used to check if field is empty
    $pstreetname = " || !preg_match($streetnameReg,$_POST['streetname'])"; //Used to check if it matches my regex
}
else
{
    //These variables define variables if inputfields are not shown
    $streetname= ''; //No streetname means it's excluded in INSERT query
    $cstreetname = ''; //Not needed in check
    $pstreetname = ''; //Also not needed in check
}

// more of these if/else statements

if ($_POST['firstname'] == '' || $_POST['lastname'] == '' || $_POST['email'] == '' $cstreetname $cpostalcode $chometown $ctelnr $csex $cdateofbirth)
{
    echo 'One of the fields is empty.';
    header('refresh:3;url=index.php');
}
else
{
    //Regex check, after that more code
}

私の考えは、特定のフィールドがフロントエンドに表示されているかどうかを確認することでした。その場合、if ステートメントに貼り付けたい変数をいくつか作成しています。

私のphpコードが無効であることを意味するサーバーエラーというエラーが表示されます。

動的な if ステートメントを作成することはまったく可能ですか? はいの場合、どの部分で失敗していますか?

助けていただければ幸いです。前もって感謝します。

4

2 に答える 2