我正在编写一个PHP脚本,但我似乎无法让它工作。我正在测试基础知识,但我真的不明白GET和POST意味着什么,有什么区别?我在网上看到的所有定义对我来说都没有多大意义,到目前为止我编写的内容(但由于我不理解POST和GET,我不知道如何让它工作:
<form name="mail_sub" method="get">
Name: <input type="text" name="theirname"> <br />
Email: <input type="text" name="theirpass"> <br />
<input type="submit" value="Join!" style="width:200px">
</form>
<?php
if (isset($_POST['mail_sub']))
{
echo $_POST['theirname'];
}
?>
答案 0 :(得分:2)
回答这个问题:
GET和POST是互联网标准中的众多request types
之一。
不同之处在于GET无法发布数据,参数将被附加到具有限制的url(url-parameters)。 POST会发布参数/数据。
标准是:
答案 1 :(得分:1)
$ _ POST不适合您,因为您已将表单方法设置为get。
<form name="mail_sub" method="post">
关于post和get之间的差异,网上有很多更好的信息,所以我不会讨论这个问题,但这会解决你的问题。
也改变你的PHP。
if ( isset( $_POST['theirname'] ) ) {
echo $_POST['theirname'];
}
答案 2 :(得分:1)
发布就像将数据“发送”到页面而不会让用户与其进行任何交互,当Get显示URL中的参数并将其公开给用户时。 Get更常用于“不安全”类型的数据交易,例如,当您想要制作更安全的内容(如登录表单)时,会使用searchform和POST。
使用Get会给你喜欢 ?的index.php参数=你好&安培;参数2 =世界
在你的例子中,你应该在formtag的method属性中使用POST,或者在php部分使用$ _GET
所以要么
<form name="mail_sub" method="post">
Name: <input type="text" name="theirname"> <br />
Email: <input type="text" name="theirpass"> <br />
<input type="submit" value="Join!" style="width:200px">
</form>
<?php
if (isset($_POST['theirname']))
{
echo $_POST['theirname'];
}
?>
或
<form name="mail_sub" method="get">
Name: <input type="text" name="theirname"> <br />
Email: <input type="text" name="theirpass"> <br />
<input type="submit" value="Join!" style="width:200px">
</form>
<?php
if (isset($_GET['theirname']))
{
echo $_GET['theirname'];
}
?>
答案 3 :(得分:1)
替换
isset($_POST['mail_sub'])
通过
isset($_POST['theirname'])
GET和POST请求之间的主要区别在于,在GET请求中,所有参数都是URL的一部分,用户可以看到参数。在POST请求中,不会修改url,并且对用户隐藏所有表单参数。如果您没有文件上传或非常长的字段参数,请使用GET。投入生产时使用POST。
答案 4 :(得分:0)
替换您的代码:
<form name="mail_sub" method="post">
Name: <input type="text" name="theirname"> <br />
Email: <input type="text" name="theirpass"> <br />
<input type="submit" name="submit" value="Join!" style="width:200px">
</form>
<?php
if (isset($_POST['submit']))
{
echo $_POST['theirname'];
}
?>
答案 5 :(得分:0)
你在表单中使用了方法作为GET,所以你的代码应该是这样的
<?php echo $_SERVER['PHP_SELF'];?>//the form and action will be same page
<form name="mail_sub" method="get" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="theirname"> <br />
Email: <input type="text" name="theirpass"> <br />
<input type="submit" value="Join!" style="width:200px">
</form>
<?php
echo $_GET['theirname'];
?>
答案 6 :(得分:0)
GET - 如果表格方法是GET,那么在提交表格时,表格将提交给
xyz.com/submit.php?theirname=john&theirpass=password // CHECK HERE - form elements are in URL so not so secure
可以通过PHP检查 如
if(isset($_GET['their']))
{
$name=$_GET['their']; //name will return John
}
POST - 如果表单方法是POST,那么在提交表单时,表单将提交给
xyz.com/submit.php // CHECK HERE form elements are not in URL
可以通过PHP检查 如
if(isset($_POST['their']))
{
$name=$_POST['their']; //name will return John
}