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 に答える