我正在尝试将一个大的URL作为字符串传递给另一个php页面并通过$_REQUEST[]
获取它
但它不起作用。
这是第一页的代码(JavaScript):
var url="index.php?module=Contacts&return_module=Campaigns&action=UD_DetailView&popuptype=detailview&select=enable&form=EditView&form_submit=false";
var intermediate_url="choose_template.php?variable_url="+url;
window.location=intermediate_url;
其他页面上的代码是:
<?php
echo "url = ".$_REQUEST['variable_url'];
?>
我在页面上看到的echo_template.php是:
url = index.php?module=Contacts
我不明白。为什么它会在第一次&
出现时破裂?
我该怎么做才能绕过它?
答案 0 :(得分:6)
尝试在js中使用:
url = encodeURIComponent(url);
比在php:
echo "url = ". urldecode($_REQUEST['variable_url']);
答案 1 :(得分:2)
操作url时,应使用urlencode和urldecode函数
http://php.net/manual/en/function.urlencode.php
http://php.net/manual/en/function.urldecode.php
在javascript中:
url = encodeURIComponent(url)
答案 2 :(得分:1)
尝试使用urlencode():
var url="<?php echo urlencode('index.php?module=Contacts&return_module=Campaigns&action=UD_DetailView&popuptype=detailview&select=enable&form=EditView&form_submit=false')?>";
var intermediate_url="choose_template.php??variable_url="+url;
window.location=intermediate_url;
答案 3 :(得分:0)
如果我理解正确的话你会回应当前页面的全名:用它来获取它:
function curpage() {
$pu = 'http';
if ($_SERVER["HTTPS"] == "on") {$pu .= "s";}
$pu .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pu .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {$pu .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];}
return $pu;
}
<?php echo "url = ".curpage(); ?>
这一切都会正常工作!