Ciao a tutti.
Devo fare una richiesta via cURL di dati POST ad un server per poi salvare i cookie che mi restituisce..
Ecco il codice:
Codice PHP:
<?php
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$dati_post['username'] = "Guglio";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.server.it/pagina.php?action=login");
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_HEADER,1);
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, $dati_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$postResult = curl_exec($ch);
if (curl_errno($ch)) {
print curl_error($ch);
}
curl_close($ch);
echo $postResult;
?>
Sul potente zio apache tutto ok, risposta 200.
Invece sul nonno NGINX ricevo:
Codice:
HTTP/1.1 417 Expectation Failed
Server: nginx/0.6.32
Date: Tue, 25 Aug 2009 11:17:42 GMT
Connection: keep-alive
Content-Length: 0
L'unico dubbio che mi è venuto su quello che possa mandare NGINX in errore è che la pagina a cui mando i dati è www.sito.it/index.php?action=login e mando i dati via POST.
Infatti se faccio la richista cURL ad una pagina che contiene phpinfo(); su un server apache sotto il campo che indica il tipo di connessione in ingresso mi viene indicato POST, anche se mando una variabile in GET..
Come posso risolvere?