1

我正在尝试将一个大 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']; ?>

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

url = index.php?module=Contacts

我不明白。为什么它会在 first 发生时中断&?我应该怎么做才能绕过它?

4

4 回答 4

6

尝试在js中使用:

url = encodeURIComponent(url);

比在 php 中:

echo "url = ". urldecode($_REQUEST['variable_url']);
于 2012-09-28T09:46:01.880 回答
2

处理 url 时,应该使用 urlencode 和 urldecode 函数

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

在 JavaScript 中:

url = encodeURIComponent(url)
于 2012-09-28T09:45:47.267 回答
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;
于 2012-09-28T10:01:16.843 回答
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(); ?>

这将始终正常工作!

于 2012-09-28T09:47:30.773 回答