http://localhost/rootfolder/contact.php?msg=empty&success=empty
那是什么放大器?当我在按钮上单击两次时,发生这种情况。我必须做些什么?
当前,我正在创建一个网站,您可以在其中订阅新闻通讯,也可以在该网站上直接发送消息。要返回上一页,我使用一个会话以及$ _SERVER超全局变量。为了将参数保留在url中并进行更改,我编写了一个函数:
function changeurl($page, $searched, $replacement) {
$strfinalone = "";
$strfinaltwo = "";
if(!(count(explode("?", $page))<= 1)) {
$a = explode("?", $page);
if(strlen($a[1]) == 0) {
$strfinaltwo = $a[0]."?".$searched."=".$replacement;
return $strfinaltwo;
}
if(!(count(explode("&", $a[1])) <= 1)) {
$b = explode("&", $a[1]);
for ($i=0; $i < count($b) ; $i++) {
$e = explode("=", $b[$i]);
if(strstr($e[0], $searched) !== false) {
if($e[1] == $replacement) {
return $a[0]."?".$a[1];
}
$str = $e[0];
$e[1] = $replacement;
$strfinalone = join("=", $e);
$b[$i] = $strfinalone;
$a[1] = join("&", $b);
$strfinaltwo = join("?", $a);
return $strfinaltwo;
}
}
$strfinaltwo = $page."&".$searched."=".$replacement;
return $strfinaltwo;
} else {
$d = explode("=", $a[1]);
if($d[0] == $searched) {
if($d[1] == $replacement) {
return $a[0]."?".$a[1];
}
$strfinaltwo = $a[0]."?".$searched."=".$replacement;
return $strfinaltwo;
} else {
$strfinaltwo = $a[0]."?".$a[1]."&".$searched."=".$replacement;
return $strfinaltwo;
}
}
} else {
$strfinaltwo = $page."?".$searched."=".$replacement;
return $strfinaltwo;
}
}
// TO GET THE URL:
$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http").":"."//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
$escaped_url = htmlspecialchars($link, ENT_QUOTES, 'UTF-8');
我只想删除此放大器;例如,当我单击两次订阅按钮时,URL的内容没有显示。
答案 0 :(得分:-1)
这是因为htmlspecialchars()用于某些html字符。
要对url进行编码,可以使用urlencode()函数。