2011-11-07 3 views
1

이 코드는 분명히 어디에서 (404 핸들러에서) 사용자 정의 404 핸들러로 리디렉션됩니다.리디렉션과 함께 데이터를 어떻게 전송합니까?

예를 들어, 호출에 여분의 항목을 추가하는 것 이외에도.

header('Location: index.php?option=com_content&view=article&id=4&param=foo'); 

데이터를 전송하는 다른 방법이 있습니까? 예를 들어 위치 전송과 함께 양식 데이터를 전송하는 메커니즘이 있습니까?

컨텍스트 : Windows7, IIS7, PHP 5, Joomla! 1.5

답변

0

예.

동일한 도메인 내의 다른 위치로 리디렉션하고 있으며 실제로 필요한 경우 데이터를 리디렉션하는 것이면 웹 서버와 함께 구성된 리디렉션을 사용해보십시오. 아파치와 함께 해왔다. IIS7 it shouldn't be too difficult.

추가 작업 (전달하기 전에 데이터 캡처 또는 조작)이 필요하면 게시 데이터를 새 위치에 다시 게시하는 대신 게시 된 데이터를 세션에 저장하여 sessions을 사용하는 것이 좋습니다.

수신 한 데이터를 새 위치에 게시해야하고 (특히 도메인이 사용자의 제어 범위를 벗어나는 경우) 결과를 렌더링해야합니다 (실제로 브라우저에서 리디렉션하지 않아도 됨). cURL이 유용 할 수 있습니다.

if(!empty($_GET['url'])) $url = $_GET['url']; 
else $url = 'localhost/default.php'; 

$post = array 
(
    'example_post_var_1' => 'foo', 
    'example_post_var_2' => 'bar' 
); 

$options = array 
(
    CURLOPT_POST => 1, 
    CURLOPT_HEADER => 0, 
    CURLOPT_URL => $url, 
    CURLOPT_FRESH_CONNECT => 1, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_FORBID_REUSE => 1, 
    CURLOPT_TIMEOUT => 4, 
    CURLOPT_POSTFIELDS => http_build_query($post) 
); 

$ch = curl_init(); 
curl_setopt_array($ch, $options); 
if(!$result = curl_exec($ch)) 
{ 
    trigger_error(curl_error($ch)); 
} 

echo $result; 
curl_close($ch); 
exit(); 
+0

그럼 내가 바로 잡아 보자. 내가 cURL을 사용하여 다른 페이지로 리디렉션 할 수 있다고 말하는 것 같습니다. 예제에 대한 링크를 게시 하시겠습니까? – bugmagnet

+0

그것을 알아내어 우우, 너 리퍼! – bugmagnet

2

Session 요청에서 데이터를 보존 할 수 있습니다 : 여기

몇 가지 예제 코드입니다.

관련 문제