2016-04-09 39 views
0

我想要做一個與Php捲曲登錄,我想像我發佈到網站上瀏覽器,但我不能登錄。Php捲曲發佈完全像瀏覽器

這是我發佈網站

$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); 

$ result變量包含http://www.example.com/login.php寬度沒有變化的HTML。

請有人能告訴我如何發佈完全一樣的瀏覽器。

我錯過了什麼捲曲選項。

我很抱歉我的英語。

+0

請將您的問題添加到您的問題當您嘗試此操作時會發生什麼。 –

回答

0

我個人認爲cURL很難處理。 海事組織使用像guzzlehttp/guzzle這樣的庫(我讓你Google)以面向對象的方式包裝cURL要容易得多。它可以讓你創建那種代碼的請求:

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

免責聲明:這只是一個例子,這顯然不完全是你需要的代碼。不要使用我的代碼,而是閱讀官方文檔。

順便說一句,許多登錄表單使用CSRF protection,不允許你以這種方式登錄。

+0

感謝pimolo您的迴應,我會嘗試GuzzleHttp librairie。 –