-2

ユーザーステータスが 10 で、 ANY POST 変数が設定されていない場合にエラーをトリガーする条件を一致させようとしています。

if ($_SESSION['status']=='10' && !isset($_POST['a']) || !isset($_POST['B'])) {}

&& 条件を使用することはでき!issetません。ある変数が設定されていても別の変数が設定されていない可能性があるためです。1 つ以上の変数が設定されておらず、かつ status==10 の場合にのみ、条件を一致させたいと考えています。

$_POSTvariableかどうかをテストするときは、ブラウザー Web ツール (Firebug など) を使用してページから要素!issetを削除します。input変数が欠落しているフォームが送信されると、まだ検証が正しく渡されません。

グループ化条件の場合、PHPも探しています。

4

4 に答える 4

0

絶対にPHP変数を探しているなら、これをお勧めします:

if (($_SESSION['status'] == 10) && (count($_POST) > 0)) {

その後、 を使用して _POST var キーのリストを取得できますarray_keys($_POST)

あなたが特定のものを探しているなら:

if (($_SESSION['status'] == 10) && (isset($_POST['A']) || isset($_POST['b']))) {

括弧の順序は重要です。論理ステートメントのグループは括弧で区切ることができます。

于 2013-04-02T21:28:32.133 に答える
0

それはあなたが探していたものですか?

$status = $_SESSION['status'];

if($status == '10'){
    if(!isset($_POST['a']) or !isset($_POST['B'])){
     //Triggers error.
    }else{
     //Another
    }
}
于 2013-04-02T21:29:17.860 に答える
-1

あなたが探しているかもしれません

if($_SESSION['status']=='10' && (!isset($_POST['a']) || !isset($_POST['B']))){}
                                ^                                          ^

これは、status = 10 であり、(「a」が設定されていないか、「B」が設定されていないか、両方が設定されていない場合) 何かを行うことを意味します。

またはあなたが探しているかもしれません

if(($_SESSION['status']=='10' && !isset($_POST['a'])) || ($_SESSION['status']=='10' && !isset($_POST['B']))){}
于 2013-04-02T21:27:47.443 に答える