Başka bir URL'ye yönlendirmek ile harici bir URL'ye PHP Form POST

1 Cevap php

Peki, ne başarmak için çalışıyorum sırayla başka bir sayfaya yönlendirir (CURL kullanarak) harici bir sayfa kendi kendine gönderme PHP form POST olması. Şu anda, ne oluyor I (contact.php olarak) formda "Gönder" butonuna tıklayınız kez (o kendi kendine gönderme formu gibi) kendisi POST olacaktır. Komut dosyası daha sonra CURL kullanarak POST hazırlar ve sonrası gerçekleştirir. Dış sayfası, onun işleme yapar ve sonra, harici sayfa bir atıfta etki, başka bir sayfaya yönlendirmek gerekiyordu. Ancak, bunun yerine ne olur, bu contact.php sayfa dış sayfasına yönlendirildi sayfasından HTML yükler gibi görünüyor, ve bu o zaman, bundan sonra contact.php 'nin HTML yükler, aynı sayfada.

Etkisi, tek sayfa olarak verilen iki ayrı sayfaları gibi görünüyor budur. Doğal olarak, ben sadece POST gerçekleştirmek ve tarayıcı bunun dış sayfa tarafından belirtilen yönlendirmek gerekiyordu sayfa işlemek istiyorum.

İşte ben bugüne kadar sahip kodudur:

<?php     
if(isset($_POST['submit']))
 {
  doCURLPost();
 }

 function doCURLPost()
 { 
  $emailid = "2, 4";

  $hotel = $_POST['hotel'];


  //you will need to setup an array of fields to post with
  //then create the post string

  $data = array ( "recipient" => $emailid,
      "subject" => "Hotel Contact Form",
      "redirect" => "http://www.localhost.com/thanx.htm",
      "Will be staying in hotel: " => $_POST['hotel'],
      "Name" => $_POST['Name'],
      "Phone" => $_POST['Phone'],
      "Comments" => $_POST['Comments']);

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "http://www.externallink.com/external.aspx");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($ch, CURLOPT_POST, true);  
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer: http://www.localhost.com/contact.php"));
  $output = curl_exec($ch);
  $info = curl_getinfo($ch);
  curl_close($ch);
 }
?>

1 Cevap

Neredeyse oradayız gibi görünüyor.

Contact.php sizin önceden POST versiyonu tarayıcınıza gönderilen almaz böylece muhtemelen sadece, cURL sağa sola döndürülen şeyleri göstererek sonra) () veya exit (ölmek istiyorum.

So you can just halt execution, or structure your code with conditionals so either the "display a form" stuff happens, or the "do some curly post and display the results" stuff happens, but not both.