1

重複の可能性:
PHP 検出要求タイプ (GET、POST、PUT、または DELETE)

人々がフォームを複数回送信したときに警告を表示したいのですが、変数が0にリセットされGETたページをリクエストしたときに使用します。count

私はこのテクニックを使用しています:

<input type="hidden" name="submissioncount" value="<?php echo $subCount; ?>" /> 

しかし、私には $_GET と $_POST が常に存在するようです:

<?php
if(isset($_GET)){
  $warning = "GET exist";
}else{
  $warning = 'GET not exist';
}
if(isset($_POST)){
  $warning2 = "POST exsit";
}else{
  $warning2 = 'POST not exist ';
}


?>
<!DOCTYPE html>
<html>
<head></head>
<body>
<?php
  echo $warning;
  echo $warning2; 
?>
<form acion='<?php echo $_SERVER['PHP_SELF']?>' method='POST' >
<input type='submit' />
</form>
</body>
</html>

アウェイリターンが存在することが判明しましたか?どこで間違ったのか、それとも他の回避策はありますか?

4

1 に答える 1

3

$_GET$_POSTスーパーグローバルは合格したかどうかに関係なく存在するため、それらをチェックするとtrueが返されます。それらのエントリをチェックして、それらが存在するかどうかを確認します。

if(isset($_POST['submissioncount'])また if(isset($_GET[some_GET_variable])


または、

$meth = $_SERVER['REQUEST_METHOD'];
if($meth == 'GET')
//do something
else if($meth == 'POST')
//do something else
于 2012-08-03T05:57:46.837 に答える