PHP – Come effettuare richiami a pagine esterne con cURL

cURL è una libreria PHP che permette di comunicare con diversi server e diversi protocolli utilizzando la stessa chiamata alla pagina.

In soldoni, l’utilità che cito in questo post è quella di poter chiamare una pagina, e passare variabili e parametri, senza dover per forza aprire una finestra del browser. Utile quindi per iscrizioni a newsletter dopo le registrazioni in determinati siti, o richiami ad altri database per inserire dei valori.

Vediamo come fare.
Abbiamo un form di iscrizione, che dovrà salvare la mail non solo nel db del vostro sito ma anche in quello di un altro servizio di mailing.

1
2
3
4
<form action="destinazione.php" method="post">
<input name="email" type="text" />
<input type="submit" />
</form>

Il file destinazione sarà così (poi vediamo di spiegare il codice)

1
2
3
4
5
6
7
8
9
10
11
12
13
/* salvataggio della mail nel vostro database */
$urlToGrab='http://www.urlesterno.com';

if ('http' != substr($urlToGrab, 0, 4))
	$urlToGrab = "http://".$_SERVER['HTTP_HOST'].('/'==substr($urlToGrab,0,1)?'':'/').$urlToGrab;

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $urlToGrab);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
$paginaRenderizzata = curl_exec ($ch);
curl_close ($ch);

Le prime righe contengono il vostro codice di salvataggio dati nel db, al momento non ci interessano.
Dalla riga 4 alla riga 7 imposto l’url esterno, controllando che la sintassi sia corretta.

Si inizializza il puntatore $ch a cui verranno associate diverse opzioni.
Settiamo il CURLOPT_POST a 1, perchè i dati che verranno inviati saranno in formato POST, mentre tramite CURLOPT_POSTFIELDS inseriamo i valori che vogliamo inviare in formato POST. Possono essere inseriti in formato stringa (email=prova@prova.it&nome=thor) oppure come array. Io ho semplicemente passato l’intera variabile globale $_POST, un array che contiene tutti i valori del form.

Nella riga 12 usiamo curl_exec per effettuare la chiamata, e chiudiamo subito dopo il metodo.

In questo modo all’url di destinazione verranno inviate tutte le variabili, e da lì è possibile creare uno script che agisce sulle variabili $_POST.

Etichette:,
Ultimi Commenti
  1. Marco
  2. Marco

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

This site uses Akismet to reduce spam. Learn how your comment data is processed.