Başka bir web sitesine form değişkenlerini yönlendirmek için bir php / htaccess senaryo yazmaya nasıl

5 Cevap php

Hey here is my problem : i made a flash and i can`t change it no mather what. That flash had a form that was sending data to my subdomain.. i had to remove the subdomain and i got a new website, the problem is this : how do i redirect the form data from the old site to the new one? In the flash i had the form send the data to : subdomain.site.ro/subscribe.php i still have that file there and i could write a script in it but the field names are something like : field[name] and i can't process them so i must send them to the original script witch is now on another site : othersite.ro/subscribe.php.

Yani basicaly i (yeni web sitesi) yeni komut dosyasına post / almak değişkenleri geçer bir senaryo yazmak gerekir ya da yeni web sitesi için post / almak değişkenleri yönlendirecek bir. Htaccess dosyası yazmak

Can someone help me? i`ve been searching for a long time and i could not find anything helpfull I would be gratefull if you would at least try to help. Thanks, Dan

Ok Now i can proccess the variables with the script below(with a html form). But the flash is not sending any variables to the script. i tried a lot of things and i am still trying.. any ideeas ? if yes please let me know. Thanks, 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>

5 Cevap

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

    exit;
?>

Bu neye ihtiyacınız başarmak yoksa, o zaman kıvrılma yoluyla biraz bir vekil oyunculuk başvurmadan deneyebilirsiniz:

<?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" doğru yanıtladı.

") (ob_start;" eğer bir hata varsa da, diyerek başlıklar zaten sadece koymak gönderildi sağa açılım "?

Eğer tüm değişkenleri almak için $_POST ve $_GET değişkenleri (diziler) üzerinde döngü gerekir:

<?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;
?>

Aynı (sadece aynı şekilde $ _GET kullanabilirsiniz) GET değişkenleri için de geçerli

<?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>

sadece $ _POST ['key'] ['değer'] Neler yerine $ _POST ['değer'] içinde .. Yukarıdaki kodu kopyalayın ve çalıştırın

so like <input name='something' = $_POST['something'] is the same as <input name='key[bla]' = $_POST['key']['bla']

Bunu yapmak için doğru yolu yenisine kadar eski alt etki noktaları DNS kaydını değiştirmek olacaktır. Sonra her şey sadece rağmen aynı yolu ile, yeni etki alanına teslim alır. Bunu yapabilirim gibi ama o gelmiyor.

Alternatif flash app kıvrılmasını kullanılarak gönderilen bu POST taklit etmektir. Sadece url sorgu dizesi (GETler) yakala ve POST gönderin. Bu alan adları $ _POST ['key'] ['değer'] olduğu önemli değil.

$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);

Hatta flash uygulaması için $ sonuç değişkeni dönmek olabilir. Sonra sadece geri ve ileri orta yönlendirme veri bir sunucu var. Sen CURLOPT_USERAGENT satır bırakabilirsin, sadece size özel bir ajan belirtmek istiyorsanız, normalde bu tarayıcı tanımlayıcı dize olduğunu kullanın.