2016-04-09 9 views
0

Ich möchte ein Login mit PHP Curl machen, stelle ich mir vor, dass ich auf der Website wie der Browser, aber ich kann nicht einloggen.Php Curl Post genau wie der Browser

das ist, wie ich die Seite

$curl = curl_init(); 
$optArray = array(
    CURLOPT_URL => 'http://www.example.com/login.php', 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_VERBOSE=> true, 
    CURLOPT_NOBODY=> true, 
    CURLOPT_HEADER=> true, 
    CURLOPT_USERAGENT=> 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8', 
    CURLOPT_COOKIEFILE => 'path of the cookie file with write permissions ', 
    CURLOPT_COOKIEJAR => 'path of the cookie file with write permissions', 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSL_VERIFYHOST => false, 
    CURLOPT_FOLLOWLOCATION => true 
    CURLOPT_REFERER => 'the referer' 
    CURLOPT_POST => TRUE, 
    CURLOPT_POSTFIELDS => 'username=xxx&password=xxx' 
); 

curl_setopt_array($curl , $optArray); 
$result = curl_exec($curl); 
curl_close($curl); 

der $ result Variable enthält den HTML-Code http://www.example.com/login.php Breite keine Änderung senden.

kann mir bitte jemand sagen, wie man genau wie der Browser posten kann.

welche Curl-Option, die ich vermisse.

Ich bin sehr entschuldigung für mein Englisch.

+0

Bitte fügen Sie zu Ihrer Frage, was passiert, wenn Sie dies versuchen. –

Antwort

0

Ich persönlich denke, dass cURL sehr schwierig zu handhaben ist. IMO ist es viel einfacher, eine Bibliothek wie guzzledhtp/guzzle zu verwenden (ich ließ dich Google dafür), die cURL in objektorientierter Weise umschließt. Es wird Sie mit dieser Art von Code-Anfragen erstellen lassen:

$httpClient = new GuzzleHttp\Client; 
$login = $httpClient->post('http://www.example.com/login.php', $optionsArray); 

HAFTUNGSAUSSCHLUSS: Es ist nur ein Beispiel, es ist offensichtlich nicht genau der Code Sie benötigen. Benutze meinen Code nicht und lies stattdessen die offizielle Dokumentation.

Übrigens verwenden viele Anmeldeformulare einen CSRF protection, der es Ihnen nicht erlaubt, sich auf diese Weise anzumelden.

+0

danke Pimolo für Ihre Antwort, werde ich die GuzhleHttp Librairie versuchen. –