L'ultimo articolo scritto su Sir Bit risale a marzo 2014. La versione che state visitando è un archivio: le pagine sono accessibili come sempre e gli autori potrebbero rispondere ai commenti, ma non saranno inseriti dei nuovi articoli. Visita questa pagina per i dettagli.

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
Etichette:,
Ultimi Commenti
  1. Marco
  2. Marco

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.