PHP:在数据库中插入url后出错


PHP: Error in url after insert in data base

向数据库发送数据时出错。

首先我有一个URL,比如:

www.domain.com/container.php?fun=olmaa

发送数据后,URL如下:

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

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

www.domain.com/container.php?fun=olmaa&send=yes&发送=是

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

我的代码是:

$url = "http". ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
header('Location: '.$url."&sent=yes");

谢谢

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

$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

$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);

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

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

因此,当您在$_SERVER['REQUEST_URI']中构建新url时,&send=是的部分,而你又在呼吁它,这就是为什么你看到它两次。user3659034给出的代码解决了这个问题。