2012-09-28 6 views
1

큰 URL을 다른 PHP 페이지에 전달하려고하고 $_REQUEST[] 을 통해 거기를 가져오고 있지만 작동하지 않습니다.앰퍼샌드 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 

나는 이해할 수 없다. 처음 발생했을 때 왜 깨지 죠? &? 그것을 우회하려면 어떻게해야합니까?

url = encodeURIComponent(url) 
+0

두 번 생각 : 당신이 그들을 연결하여 그대로 URL에 URL을 할 수 있나요? 또한 물어보기 전에 검색하십시오. – hakre

+0

@hakra 다른 URL에 문자열 변수로 URL을 넣을 때 발생하는 문제는 무엇입니까? – Leonidus

답변

6

가 JS에서 사용해보십시오 : PHP에서보다

url = encodeURIComponent(url); 

:

URL을 조작 할 때
+0

매우 도움이 된 감사합니다. – Leonidus

+0

도와 주셔서 감사합니다 :) – Develoger

2

, 당신은를 urlencode와 URLDECODE 기능을 자바 스크립트에서

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

를 사용한다

echo "url = ". urldecode($_REQUEST['variable_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; 
관련 문제