为什么取两次, 然后$_get $_post在这里的区别是?

harveymorning 2016-08-18 04:36:25
<?php
include ('include_fns.php');
$title=$_POST['title'];
$poster=$_POST['poster'];
$message=$_POST['message'];
if (isset($_GET['parent'])){
$parent=$_GET['parent'];
}else{
$parent=$_POST['parent'];
}
if (!$error){
if (!$parent){
$parent=0;
if (!$title){
$title='New Post';
}
}else{
//get post name
$title=get_post_title($parent);
//append Re:
if (strstr($title,'Re: ')==false){
$title='Re: '.$title;
}
//make sure title will still fit in db
$title=substr($title,0,20);
//prepend a quoting pattern to the post you are replying to
$message=add_quoting(get_post_message($parent));
}
}
do_html_header($title);
display_new_post_form($parent,$area,$title,$message,$poster);
if ($error){
echo "<p>Your message was not stored.</p>
<p>Make sure you have filled in all fields and try again.</p>";
}
do_html_footer();
...全文
175 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayzen1988 2016-08-22
  • 打赏
  • 举报
回复
引用 4 楼 yuhaozhong 的回复:
[quote=引用 2 楼 zhangbin1988 的回复:]

//不知道你说的取两次说的哪里

if (isset($_GET['parent'])){
    <span style="color: #800000;">$parent=$_GET['parent'];</span>
}else{
   <span style="color: #FF0000;"> $parent=$_POST['parent'];</span>
}
//如果是上面,它只是优先取$_GET['parent']的值

//假如你给test.php?parent=0提交数据,post parent=1
$parent=0;

//假如你给test.php提交数据,post parent=1
$parent=1;
//是说的这段代码,按你说的,为什么这里是优先级的问题,不是判断处在与否?
[/quote] 你先判断$_GET['parent']的值是否存在,优先取它的值
xuzuning 2016-08-21
  • 打赏
  • 举报
回复
if (isset($_GET['parent'])){ //如果存在 URL参数传入的 parent $parent=$_GET['parent']; //则取 URL参数传入的 parent }else{ $parent=$_POST['parent']; //否则取表单中的 parent } 两者取其一,怎么是两次呢?
harveymorning 2016-08-21
  • 打赏
  • 举报
回复
引用 2 楼 zhangbin1988 的回复:

//不知道你说的取两次说的哪里

if (isset($_GET['parent'])){
    <span style="color: #800000;">$parent=$_GET['parent'];</span>
}else{
   <span style="color: #FF0000;"> $parent=$_POST['parent'];</span>
}
//如果是上面,它只是优先取$_GET['parent']的值

//假如你给test.php?parent=0提交数据,post parent=1
$parent=0;

//假如你给test.php提交数据,post parent=1
$parent=1;
//是说的这段代码,按你说的,为什么这里是优先级的问题,不是判断处在与否?
harveymorning 2016-08-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
哪里取了两次? $_GET 取得 http get 方式的参数 $_POST 取得 http post 方式的参数
[code=php][ if (isset($_GET['parent'])){//存在父节点并获取了, <span style="color: #800000;">$parent=$_GET['parent'];</span>//把父节点赋值给变量$parent,通过get的方式。 }else{ <span style="color: #FF0000;"> $parent=$_POST['parent'];</span>/code]//else,不存在父节点,通过post的方式获取parent,然后赋值给$parent, 是这样吗?逻辑不通,不存在那就是赋值为0,他后面也是这么写的,if(!$parent){$parent=0
ayzen1988 2016-08-19
  • 打赏
  • 举报
回复

//不知道你说的取两次说的哪里

if (isset($_GET['parent'])){
    <span style="color: #800000;">$parent=$_GET['parent'];</span>
}else{
   <span style="color: #FF0000;"> $parent=$_POST['parent'];</span>
}
//如果是上面,它只是优先取$_GET['parent']的值

//假如你给test.php?parent=0提交数据,post parent=1
$parent=0;

//假如你给test.php提交数据,post parent=1
$parent=1;
xuzuning 2016-08-18
  • 打赏
  • 举报
回复
哪里取了两次? $_GET 取得 http get 方式的参数 $_POST 取得 http post 方式的参数

21,886

社区成员

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

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