有一個外部網站,我希望能夠從我的網站登錄。外部網站有這個HTML:PHP發佈數據登錄外部網頁
<form action="/Login" method="post">
<div style="width: 280px; margin-left: auto; margin-right: auto; margin-top: 150px; padding: 10px 10px 10px 10px;" class="ui-corner-all">
<div class="pw-input-group">
<span class="pw-input-group-addon">
<i class="fa fa-user fa-fw"></i>
</span>
<input id="username" name="username" class="required text pw-form-control" type="text" placeholder="Username" minlength="2" maxlength="45" />
</div>
<div class="pw-input-group">
<span class="pw-input-group-addon">
<i class="fa fa-key fa-fw"></i>
</span>
<input id="password" name="password" class="required text pw-form-control" type="password" placeholder="Password" minlength="2" maxlength="45" />
</div>
<div style="float: right;">
<input id="loginbutton" name="submit" style="line-height: 1.42857; padding: 6px 12px; font-size: 14px; color: #555;" type="submit" value="Login" />
</div>
</div>
</form>
我已經用我的網站上這個PHP代碼的嘗試:
//set POST variables
$url = 'https://portal.external-website.co.uk/Login';
$fields = array(
'username' => urlencode("username"),
'password' => urlencode("password"),
'submit' => 'Login'
);
//url-ify the data for the POST
foreach($fields as $key=>$value) {
$fields_string .= $key.'='.$value.'&';
}
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//we need to ignore SSL errors here
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//execute post
$result = curl_exec($ch);
var_dump($result);
echo curl_getinfo($ch) . '<br/>';
echo curl_errno($ch) . '<br/>';
echo curl_error($ch) . '<br/>';
//close connection
curl_close($ch);
它顯示
bool(true) Array
0
但是當我再次訪問該網站,其告訴我我沒有登錄
我怎麼能得到這個登錄我?
您還沒有登錄客戶端,但您的服務器。 – Richard
此外:'foreach($ fields as $ key => $ value){ $ fields_string。= $ key。'='。$ value。'&'; } rtrim($ fields_string,'&');'與'http_build_query($ fields_string)'是一樣的''''rtrim'有一個返回值,不直接編輯變量,你必須重新分配它 – Richard
我當時試圖從一個只能在登錄時才能看到的頁面訪問內容,爲此我使用'file_get_contents('url.com');' - 當我做了'var_dump'這個它只顯示我的登錄頁面外部網站 – charlie