我有一个简单的php测试页面如下
<?php
if(isset($_POST['hitme']))
{
echo "hello world";
}
?>
我正在点击此页面http://www.abc.com/page.php?hitme=true
,但这并不是回应任何事情。这有什么不对吗?
答案 0 :(得分:6)
使用$_GET['hitme']
,而不是$_POST
,因为您传递了查询字符串中的值。 $_POST
将保存通过<form action='post'>
发送的值,但不会保存在查询字符串中传递的值。
if(isset($_GET['hitme'])) {...}
答案 1 :(得分:3)
$_POST
仅包含作为HTTP POST请求的一部分发布到页面的变量。如果您在浏览器地址栏中键入地址,则表示您正在发出GET请求,而不是POST请求,并且$_POST
中不会设置任何变量。即使您发出POST请求,查询字符串上指定的变量仍然仅在$_GET
内可用,因此对于此示例,您使用错误的数组。
答案 2 :(得分:1)
如果在网址
中,您必须使用$_GET
代替$_POST
答案 3 :(得分:1)
如果它在网址中,例如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中就会存在。
答案 4 :(得分:0)
或者你可以使用$_REQUEST['hitme']
,这个会检查$_POST['hitme']
和$_GET['hitme']