Autore: Fabio Di Matteo
Ultima revisione: 01/12/2008
Spesso si puo' avere l'esigenza di creare uno script php che compia determinate operazioni su di una pagina protetta da autenticazione http (per intenderci la finestrella del browser che ci chiede nome utente e password).
function auth($base_url, $user,$pass) { // Il solito - init curl uno sessione e impostare la url $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $base_url); // Imposta il login e la password per l autenticazione curl_setopt ($ch, CURLOPT_USERPWD, $user.":".$pass); // È possibile utilizzare CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, // CURLAUTH_NTLM, CURLAUTH_ANY, and CURLAUTH_ANYSAFE / / CURLAUTH_NTLM, CURLAUTH_ANY, e CURLAUTH_ANYSAFE // È possibile utilizzare il bit | (o) operatore di combinare più di un metodo. // CURLAUTH_ANY è un alias per CURLAUTH_BASIC | CURLAUTH_DIGEST | // CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM / / CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM // CURLAUTH_ANYSAFE è un alias per CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM // Se non si e' sicuri utilizzare CURLAUTH_ANY in quanto copre tutti i casi curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // Questo è talvolta necessario per fermare CURL dal verificare i certificati. //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Opzionale: Torna il risultato invece di stamparlo, e quindi non fa vedere nulla della pagina //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Ottiene i risultati e chiude la sessione $data = curl_exec($ch); curl_close($ch); //Ci porta alla pagina oltre l'autenticazione @header('Location: '.$base_url); }
auth("http://server/indirizzo-pagina-autenticazione.php","TUOUTENTE","TUAPASSWORD");