2012-09-28 93 views
1

我想通过一个大的URL作为字符串到另一个PHP页面,并通过$_REQUEST[] 但它不工作。 下面是从第一页的代码(JavaScript的):&符号没有通过url传递字符串变量

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']; ?>

回声我得到页choose_template.php是这样的:

url = index.php?module=Contacts 

我不明白。为什么在第一次出现&时发生中断? 我该怎么做才能绕过它?

+0

三思:你可以把一个URL到URL字面上通过连接呢?也请在询问之前进行搜索。 – hakre

+0

@hakra在将URL作为字符串变量放入另一个URL中时出现什么问题? – Leonidus

回答

6

尝试使用JS:

url = encodeURIComponent(url); 

比PHP:

echo "url = ". urldecode($_REQUEST['variable_url']); 
+0

非常感谢您的帮助。 – Leonidus

+0

很高兴帮助:) – Develoger

2

当处理URL时,你应该使用进行urlencode和urldecode功能

http://php.net/manual/en/function.urlencode.php 
http://php.net/manual/en/function.urldecode.php 

在javascript中:

url = encodeURIComponent(url) 
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(); ?> 

这总是支持做工精细!

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;