首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:插入数据库后url中的错误

PHP:插入数据库后url中的错误
EN

Stack Overflow用户
提问于 2014-09-06 06:45:23
回答 2查看 40关注 0票数 0

将数据发送到数据库时出错。

,首先,我有URL,如:

代码语言:javascript
复制
www.domain.com/container.php?fun=olmaa

发送数据后,URL如下所示:

代码语言:javascript
复制
www.domain.com/container.php?fun=olmaa&sent=yes

但是,当再次发送时,它看起来像是:

www.domain.com/container.php?fun=olmaa&sent=yes&sent=yes

为什么要再次插入&sent=yes ??

我的代码是:

代码语言:javascript
复制
$url = "http". ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
header('Location: '.$url."&sent=yes");

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-06 06:53:32

在追加发送参数之前,只需通过strpos检查它是否已经存在。试试这个..。

代码语言:javascript
复制
$url = "http". ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$final_url = (strpos($url, '&sent=yes') == false) ? $url."&sent=yes" : $url;
header('Location: '.$final_url);

或者可以使用parse_str

代码语言:javascript
复制
$url = "http". ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
parse_str($url, $params);
$final_url = (!isset($params['sent'])) ? $url."&sent=yes" : $url;
header('Location: '.$final_url);
票数 0
EN

Stack Overflow用户

发布于 2014-09-06 06:57:23

问题是,第二次尝试发送数据时,您要发送的url是

代码语言:javascript
复制
   www.domain.com/container.php?fun=olmaa&sent=yes

因此,当您在$_SERVER‘’中构建新的url时,&sent=yes部分已经存在,并且再次追加它,这就是为什么您看到它两次的原因。user3659034给出的代码解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25697624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档