0

フォームの送信時にフォーム内のすべてのフィールドにデータが含まれていることを確認するチェッカーを追加しました。

if(     (   isset($_POST['name'] == "Contact")  )
    && (    isset($_POST['company'] == "Company Name")  )
    && (    isset($_POST['address'] == "Address")   )
    && (    isset($_POST['turnover'] == "Approx. Turnover") )
    && (    isset($_POST['employees'] == "No. Of Employees")    ) 
    && (    isset($_POST['contact'] == "Contact Number")    )  
  )
    {
    //nothing has changed and we fail the form
    $_SESSION['failed'] == true;
}
else{

次のエラーが表示されます。

解析エラー: 構文エラー、予期しない T_IS_EQUAL、',' または ')' が必要です

誰が問題が何であるかを見ることができますか? また、これはすべての投稿値にデータが含まれていることを確認しますか?

ありがとう。

4

6 に答える 6

2
if(isset($_POST['name']) == "Contact") 

する必要があります

if(isset($_POST['name']) && $_POST['name'] == "Contact") 

(または、必要に応じて使用でき||ますOR

また、値があるかどうかもチェックしません。変数が設定されているかどうかのみをチェックします。どちらか== ''またはempty()を使用して、値があるかどうかを確認します。

$_SESSION['failed'] == true;

する必要があります

$_SESSION['failed'] = true;

==は比較用で=あり、割り当て用です

于 2012-06-19T10:41:56.623 に答える
1

関数issethttp://www.php.net/manual/function.isset.php)は、変数が定義されているかどうかを確認するために使用されます。値が入力されているかどうかを確認するには、次のようなものを使用する必要があります。

if(
    empty($_POST['name']) || $_POST['name'] == "Contact"
    || empty($_POST['company']) || $_POST['company'] == "Company Name"
)
{
    $_SESSION['failed'] = true;
}
于 2012-06-19T10:48:58.473 に答える
1

論理的には、OR演算子を使用して空の値とデフォルト値を確認する必要があると思います

if(     empty($_POST['name']) ||  $_POST['name'] == "Contact"  
||     empty($_POST['company']) ||  $_POST['company']  == "Company Name"
||     empty($_POST['address']) ||  $_POST['address']  == "Address"
||     empty($_POST['turnover']) ||  $_POST['turnover']  == "Approx. Turnover"
||    empty($_POST['employees']) ||  $_POST['employees']  == "No. Of Employees"
||    empty($_POST['contact']) ||  $_POST['contact']  == "Contact Number"


 )

 {
    //nothing has changed and we fail the form
    $_SESSION['failed'] = true;
}
else{
于 2012-06-19T10:49:16.693 に答える
1
if(   
   (isset($_POST["name"]) && $_POST["name"] == "Contact")&& 
   (    isset($_POST['company']) && $_POST["Company Name"] == "Company Name") && 
   (    isset($_POST['address']) && $_POST["Address"] == "Address")   && 
   (    isset($_POST['turnover']) && $_POST["Approx. Turnover"] == "Approx. Turnover") && 
   (    isset($_POST['employees'])&&  $_POST["No. Of Employees"] == "No. Of Employees")    && 
    (    isset($_POST['contact']) && $_POST["Contact Number"] == "Contact Number")  
    ){
    $_SESSION["failed"]=TRUE;
    }

isset() を閉じるのを忘れており、$_SESSION の行で = を割り当てる必要があります

于 2012-06-19T10:46:55.450 に答える
0

また、期待する配列をセットアップし、POST 配列と期待される配列の間の差分を作成することもできます。差分がある場合は失敗します...つまり、ハードコードされたチェック値がある場合...しかし、それはあなたのようですキーだけでなく値もチェックしたいので、ニーズに合うはずです。

于 2012-06-19T10:52:42.010 に答える
0
if(empty($_POST['name']) || ......)

その後、セッションに失敗しました。

于 2012-06-19T10:42:02.520 に答える