次のような単純なphpテストページがあります
<?php
if(isset($_POST['hitme']))
{
echo "hello world";
}
?>
私はこのページにアクセスしていますhttp://www.abc.com/page.php?hitme=trueが、これは何もエコーしていません。これで何か問題がありますか?
次のような単純なphpテストページがあります
<?php
if(isset($_POST['hitme']))
{
echo "hello world";
}
?>
私はこのページにアクセスしていますhttp://www.abc.com/page.php?hitme=trueが、これは何もエコーしていません。これで何か問題がありますか?
クエリ文字列で値を渡したので $_GET['hitme']、 ではなくを使用してください。を介して送信された値を保持しますが、クエリ文字列で渡された値は保持しません。$_POST$_POST<form action='post'>
if(isset($_GET['hitme'])) {...}
PHP のスーパーグローバル配列の違いについて読むことをお勧めします。
$_POSTHTTP POST リクエストの一部としてページにポストされる変数のみが含まれます。ブラウザーのアドレス バーにアドレスを入力している場合は、POST 要求ではなく GET 要求を発行しているため、変数は に設定されません$_POST。POST リクエストを発行している場合でも、クエリ文字列で指定された変数は内でしか使用できない$_GETため、この例ではどちらの方法でも間違った配列を使用しています。
それが URL にある場合、たとえばhttp://example.com/index.php?hitme=trueにあります$_GET。
ただし、 に入れたい場合は$_POST、次のようにする必要があります (非常に基本的な例)。
<form method="post" action="page.php">
<input type="checkbox" name="hitme" value="true" />
<input type="submit" value="Post data!" />
</form>
このスクリプトにより、ユーザーは必要に応じてそれをチェックし、[Post data!] をクリックできます。
ただし、$_POSTユーザーがボタンをクリックしない限り、表示されません。に関しては$_GET、URL に含まれている限り存在します。
URL にある場合は$_GET代わりに使用する必要があります$_POST
または、を使用できます$_REQUEST['hitme']。これは両方をチェックし$_POST['hitme']、$_GET['hitme']