$_GET和$_POST的区别

hksfans_MA 2004-11-29 12:13:24
page1

<form name="form1" id="form1" method="post" action="save3.php">
<p>
<input name="name" type="text" id="name" />
</p>
<p>
<input type="submit" name="Submit" value="Submit" />
</p>
</form>


page2

<?
$name=$_POST['name'];
echo $name;
?>


这样可以正常输出在name文本框中输入的值,

但<?
$name=$_GET['name'];
echo $name;
?>
就取不到值,为什么啊,是不是php.ini里面有什么默认设置没有打开
...全文
519 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevinsin 2005-05-08
  • 打赏
  • 举报
回复
我一般用
import_request_variables("pg");
什么问题都解决了,哈哈
uuq 2005-05-07
  • 打赏
  • 举报
回复
同意楼上$_REQUEST
Meteorlet 2005-05-07
  • 打赏
  • 举报
回复
还是$_REQUEST 好,不用区分那么清楚
gu1dai 2005-05-07
  • 打赏
  • 举报
回复
foreach ($_GET as $hkey => $hk){ $postfield[]=$hkey;echo $hkey,"=",$hk,"<BR>";}
补充
  • 打赏
  • 举报
回复
看晕了,我现在基本上都是直接用$_REQUEST,哪用得着区分什么_GET,_POST?我读过vBulletin 的源代码,人家都是用 _REQUEST
gu1dai 2005-05-07
  • 打赏
  • 举报
回复
经典代码果然好。
gun_hzic 2004-11-30
  • 打赏
  • 举报
回复
method不同

post用$_POST
get用$_GET
programdolt 2004-11-30
  • 打赏
  • 举报
回复
to littlejc2(半半)
action = ".\page2.php?cgr=hello"
nestazhang 2004-11-29
  • 打赏
  • 举报
回复
get是接URL上的变量的 post是接form中的变量的
spacet 2004-11-29
  • 打赏
  • 举报
回复
哦,经唠叨老大一说,终于明白了楼主的意思,呵呵
xuzuning 2004-11-29
  • 打赏
  • 举报
回复
最初是以post方式提交的,以后以get方式传递

if(isset($_POST["submitflag"])){ //如果是表单提交
$searchkey = $_POST["key"]; //则取表单变量
$page = 1;
}else{
$page = $_GET["key"];
$serchkey = $_GET["key"]; //否则取url变量
}


spacet 2004-11-29
  • 打赏
  • 举报
回复
楼上的意思不明白,把表单贴出来看看
Evilfile 2004-11-29
  • 打赏
  • 举报
回复
如果你在php.ini中设置register_globals=ON,说明php已经是自动是全局变量了,<a href=test.php?id=1>在test.php中就直接可以使用$id,但php的高版本都是让register_globals=OFF为默认设置,要求尽量不要设成全局变量!所以就要通过$_GET['id']来创建。
而你如果是通过表单POST传递的话就用$_POST['id']。

hksfans_MA 2004-11-29
  • 打赏
  • 举报
回复
哦,懂了,不过大家看这段程序:
<?php
//在查询表单中放一个 hidden 类型的 submitflag
$pagesize = 20;
if(isset($_POST["submitflag"])){ //得到搜索关键字
$searchkey = $_POST["key"];
$page = 1;
}else{
$page = $_GET["key"];
$serchkey = $_GET["key"];
}
$querysql = "select * from dbname where field like '%$serchkey%' ";
$result = mysql_query($querysql);
$total = mysql_num_rows($result);
$query = sprintf("%s Limit %s,'%%s%'",$querysql, $page*$pagesize,$pagesize);
if($total>$pagesize){
while($page*$pagesize<$total){
printf("<a href='page=%s&key=%s'>%s</a>",$page,$key,$page);
$page++;
}
}
/*
数据处理
*/
?>

在一段程序中既有POST又有GET
技术上怎么实现呢?
spacet 2004-11-29
  • 打赏
  • 举报
回复
因为你表到的提交方式是“POST”啊,你把表单改为这样:
<form name="form1" id="form1" method="get" action="save3.php">

那你<?
$name=$_GET['name'];
echo $name;
?>
就是正确的
spacet 2004-11-29
  • 打赏
  • 举报
回复
回复人: littlejc2(半半) ( ) 信誉:100

这位大哥,真帮我大忙了,哈哈。
是空格1大哥我记住你的名字了,改日必当相谢
----------------------------------------

大家一起学习:)
hover_online 2004-11-29
  • 打赏
  • 举报
回复
//这样就是get
Name();//处理Name提交诓的函数都是从url从取得参数

//这样就是post
if (cgiFormSubmitClicked("loadenvironment") == cgiFormSuccess) {
Name();//处理Name提交诓的函数,这个函数都是从url从取得参数
}
hover_online 2004-11-29
  • 打赏
  • 举报
回复
其实本质上并没有根本上的区别都是从取url变量,post是以post方式提交的,先判断以下是否有一个提交按钮提交了,之后在get,get方式直接从url得到参数。
littlejc2 2004-11-29
  • 打赏
  • 举报
回复
$_GET[cgr]

注意是“=”前的那个才是变量,后面的$cgr是$_GET[cgr]的值
----------------------------------------


这位大哥,真帮我大忙了,哈哈。
是空格1大哥我记住你的名字了,改日必当相谢
littlejc2 2004-11-29
  • 打赏
  • 举报
回复
这位兄弟是看了我的程序啊,托他的福,我原来的问题解决了。哈哈

不过,我又碰到一个麻烦,$_GET['cgr']接不到url的值

因为,我page1表单中的action是指向"page2.php"的,
点提交之后
url上面没有?cgr="$cgr"的形式
就是一个 .\page2.php


这样怎么接url上的变量啊?^_^
加载更多回复(9)

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧