Bir formu göndermek ve e-posta

4 Cevap php

Şu anda bir senaryo siteme harici bir sayfaya bir formu göndermek için almaya çalışıyorum ama bana da müşteri tarafından verilen cevapları e-posta olacaktır. Mail () fonksiyonu posta için iyi çalıştı ... ama nasıl o zaman bu değerleri almak ve aynı zamanda Dış sayfaya bunları gönderirim?

Yardımlarınız için teşekkürler!

4 Cevap

Eğer komut göndermek için formu alırsanız, ilk olarak e-posta gönderebilir ve daha sonra göndermek istediğiniz değerleri gönderme, cURL Dış sayfaya bir HTTP isteği yapmak için kullanabilirsiniz. Isteği web sunucusu yapılır çünkü dış site, kullanıcının sahip herhangi bir kurabiye dayanarak eğer bu olsa çalışmaz.

örneğin

<?php
//data to post
$data = array( 'name' => 'tom', 'another_form_field'=>'a' ); 

//external site url (this should be the 'action' of the remote form you are submitting to)
$url = "http://example.com/some/url";  

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_POST, 1);  
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

//make curl return the content returned rather than printing it straight out
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  

$result = curl_exec($curl);

if ($result === false) {
    //curl error   
}

curl_close($curl);

//this is what the webserver sent back when you submitted the form
echo $result;

Siz ilgili alanlara ve formu GET veya POST kullanarak gönderilen olup olmadığını name 'nin HTML belirlemek için dış formun kaynak kazmak zorunda gidiyoruz.

Form GET yöntemini kullanır, kolayca gerçek formu olarak aynı form takip eden sorgu-string oluşturabilirsiniz: http://example.com/form.php?name1=value1&name2=value2 ...

Öte yandan, form POST yöntemini kullanır, eğer, cURL kütüphanesi gibi bir şey (http://us2.php.net/curl) kullanarak bir HTTP POST isteği oluşturmak gerekecek.

Eğer e-posta göndermek için kullandığınız komut özel bir HTTP POST isteği gönderebilir. fsockopen bağlantı kurmak ve o zaman sadece formdan alınan verileri içeren kendi HTTP isteği göndermek için çalışın.

Edit:

Biraz daha spesifik. Basit bir HTTP POST isteği göndermek için nasıl gösterir this örnek var. Sadece bu gibi $_POST dizi ile tohum:

do_post_request(your_url, $_POST);

ve hile yapmak gerekir. Daha sonra, isteğe bağlı olarak herşey yolunda gitti olup olmadığını kontrol etmek yanıtı değerlendirmek olabilir.

POST için, işleme eylemi olarak dış sayfasını ayarlamak gerekir:

<form action="http://external-page.com/processor.php" method="POST">
    <!-- Form fields go here --->
</form>

Bu GET eğer, GET form yöntemini değiştirmek, ya da özel bir sorgu dizesi oluşturabilir ya:

<a href="http://external-page.com/processor.php?field1=value1&field2=value2">submit</a>

Edit: Ben sadece muhtemelen PHP işlem sınıfı içinde bu göndermek istiyorum gerçekleşmiştir. Bu durumda, özel sorgu dizesi ile yer başlığını ayarlama kullanabilirsiniz:

header("Location: http://external-page.com/processor.php?field1=value1&field2=value2");