-2
if(!isset($_GET['set']) && (($_GET['set'] != 'on') || ($_GET['set'] != 'off'))){
    header('Location: http://google.com');
    exit;
}

確認したいのは、セットが設定されておらず、値がオンまたはオフでないかどうかです。これは正しいですか、それとも他の方法はありますか?

4

5 に答える 5

6

いいえ、必要なのはこれだけです:

if(!isset($_GET['set'])){
    header('Location: http://google.com');
    exit;
}
于 2012-10-04T15:38:23.840 に答える
3

と を交換&&しました||:

if (!isset($_GET['set']) || (($_GET['set'] != 'on') && ($_GET['set'] != 'off'))){
    header('Location: http://google.com');
    exit;
}

これらのエラーは簡単には見つかりません。問題を分割するのに役立ちます。

$isSet   = isset($_GET['set']);
$isOn    = $isSet && $_GET['set'] === 'on';
$isOff   = $isSet && $_GET['set'] === 'off';
$isOnOff = $isOn || $isOff;

if (!$isOnOff) {
    ...
}
于 2012-10-04T15:39:30.787 に答える
1

を超えてチェックする必要はありません!isset()。が設定されていない場合$_GET['set']、値はありません。

if(!isset($_GET['set'])) {
    header('Location: http://google.com');
    exit;
}
于 2012-10-04T15:41:03.590 に答える
0

これを試して

if(!isset($_GET['set']))?header('Location: http://google.com'): exit;
于 2012-10-04T15:47:43.267 に答える
0

またはのいずれかでなければならないことNotice: Undefined variable: を確認したいので、 回避する変数を定義する方がよいと思います。$_GET['set']onoff

$_GET['set'] = isset($_GET['set']) ? $_GET['set'] : null ;

if(!($_GET['set'] == "on" || $_GET['set'] == "off")){
    header('Location: http://google.com');
    exit;
}
于 2012-10-04T15:41:14.040 に答える