我有一个简单的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
将保存通过 a 发送的值<form action='post'>
,但不保存在查询字符串中传递的值。
if(isset($_GET['hitme'])) {...}
建议阅读PHP 的超全局数组之间的差异。
$_POST
仅包含作为 HTTP POST 请求的一部分发布到页面的变量。如果您在浏览器地址栏中输入地址,您发出的是 GET 请求,而不是 POST 请求,并且不会在$_POST
. 即使您发出 POST 请求,查询字符串上指定的变量仍将仅在内部可用$_GET
,因此对于此示例,无论哪种方式,您都使用了错误的数组。
您必须在 URL 中使用$_GET
而不是$_POST
如果它在 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
但是,只要用户没有点击按钮,它就不会出现。至于$_GET
,只要它在 URL 中,它就会在那里。
或者你可以使用$_REQUEST['hitme']
,这个会同时检查$_POST['hitme']
和$_GET['hitme']