를 작성하는 방법 php/htaccess 스크립트로 리디렉션하는 형태로 변수를 다른 웹사이트

StackOverflow https://stackoverflow.com/questions/1410163

문제

어이 여기에 내 문제가:나는 플래시며 나는 그것을 변경할 수 없습니다 없는 메이 무엇입니다.플래시했다는 형식이었 데이터를 보내는 내 하위 도메인..나는 하위 도메인을 제거하고 새로운 웹사이트 문제는 이것:어떻게 리다이렉 형태에서 데이터의 오래된 사이트를 새로운 중 하나?플래시 나는 형태로 데이터를 보낼:subdomain.site.ro/subscribe.php 나는 여전히있는 파일이 있다고 내가 쓸 수 있는 스크립트에서 그것은 그러나 필름은 다음과 같습니다.필드[name]나는 처리할 수 없습니다 그래서 나는 그들을 보내야 합니다 원래 스크립트는 마녀에서 지금이 다른 사이트:othersite.ro/subscribe.php.

그래서 기본적으로 내가 스크립트를 작성 전달되는 게시물/얻을 변수를 새로운 스크립트(에 새로운 웹 사이트)또는 쓰기.htaccess 파일을 리디렉션합니다 post/얻을 변수를 새로운 웹사이트

누군가의 도움을 받을 수 있는가?위한 시간이 오래하고 내가 아무것도 찾을 수 없습 helpfull 나는 것 충실히 수행하면서도 도움이됩니다.감사합니다, Dan

좋아 지금 내가 할 수 있습 였는지는 변수로는 스크립트는 아래(가 html 형태).그러나 플래시지를 보내는 어떤 변수를 스크립트입니다.내가 많은 것들을 시도했고,난 여전히 노력..어떤 ideeas?그렇다면 알려 주시기 바랍니다.감사합니다, Dan

<?php
if(isset($_POST['key']['yourmom'])) 
echo 'Your mom is '.$_POST['key']['yourmom'].' and your face '.$_POST['key']['yourface'];
?>


<form method="post">
<input type="hidden" name="key[yourmom]" value="lol">
<input type="hidden" name="key[yourface]" value="failed">
<input type="submit">
</form>
도움이 되었습니까?

해결책

<?php
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://othersite.ro/subscribe.php");
    header("Connection: close");

    exit;
?>

지 않는 경우 달성할 필요가 무엇을,당신은 수도에 의존하지 작용으로 약간의 프록시를 통해 컬:

<?php
    $ch = curl_init('http://othersite.ro/subscribe.php');
    curl_setopt ($ch, CURLOPT_POST, 1);
    curl_setopt ($ch, CURLOPT_POSTFIELDS, "key1=val1&key2=val2&key3=val3");
    curl_exec ($ch);
    curl_close ($ch);
?>

다른 팁

yup"Dav"대답하는습니다.

또한,오류 메시지가 표시되는 경우 말하는 헤더가 이미 그냥 넣어"ob_start();"바로 아래에 열기"<?php" - that is, if you plan on putting this knee deep in another php script.

필요하신 루프를 넘 $_POST$_GET 변수가(배열)의 모든 변수:

<?php
    header("HTTP/1.1 301 Moved Permanently");
    $poststring="";
    foreach ($_POST as $variable=>$value)
            {
            $poststring.=$variable."=".$value."&";
            }
    header("Location: http://othersite.ro/subscribe.php?".$poststring);
    header("Connection: close");

    exit;
?>

한 변수를 얻(사용$_GET 에서 동일한 방식으로)

<?php

    if(isset($_POST['key']['yourmom'])) echo 'Your mom is '.$_POST['key']['yourmom'].' and your face '.$_POST['key']['yourface'];

?>


<form method="post">
<input type="hidden" name="key[yourmom]" value="lol">
<input type="hidden" name="key[yourface]" value="failed">
<input type="submit">
</form>

위의 코드를 복사하고 그것을 실행..대신$_POST['value']그냥$_POST['키']['value']

그래서 다음과 같

올바른 방법으로 그것을 할 것을 변경하 DNS 기록을 그래서 당신의 오래된 하위 도메인에 포인트는 새로운 하나입니다.그럼 모든 것을 다 얻을 제출하여 새로운 도메인이지만,동일한 경로에 있습니다.하지만 그것은 같은 소리 하지 않을 수행할 수 있습니다.

대안을 모방하는 게시물의 플래시 응용 프로그램를 사용하여 제출 컬입니다.를 잡아 url query string(GETs)제출합니다.그것이 중요하지 않습니다 당신의 필드의 이름은$_POST['키']['value'].

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'othersite.ro/subscribe.php?'.$_SERVER['QUERY_STRING']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_setopt($ch, CURLOPT_USERAGENT, 'Redirect Fix');
$result = curl_exec($ch);
curl_close($ch);

수도 반$결과 변수의 플래시 응용 프로그램.당신은 단지 서버가 중간에 라우팅 데이터를 주고 받고 있습니다.삭제할 수 있습 CURLOPT_USERAGENT 라인,당신은 단지 사용하려는 경우 지정한 사용자 정의 에이전트는 일반적으로 이는 브라우저는 식별자를 지정합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top