0
$cookie="cookie.txt"; 
$data = array();
$data['global_id'] = "raj";
$data['global_password'] = "raj";

foreach ($data as $key => $value){
    $post_items[] = $key . '=' . $value;
}

//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);


$curl_connection = curl_init('http://somedomain.com/cgi-bin/login.pl');
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_connection, CURLOPT_REFERER, 'http://somedomain.com/cgi-bin/login.pl');
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($curl_connection, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($curl_connection, CURL_COOKIEFILE, '');
$result = curl_exec($curl_connection);

if($result == "success"){
    header("Location: http://somedomain.com/cgi-bin/index.pl");
}
else{
    echo "Login failed";
}

//close the connection
curl_close($curl_connection);

何が問題なのですか...ログインできません

このスクリプトを実行した後、http: //somedomain.com/cgi-bin/index.plにアクセス すると、ログインする必要があります。これどうやってするの ?

4

3 に答える 3

1

CURLOPT_RETURNTRANSFERに設定する必要がありtrueます。おそらくあなたの $result は空です。

さらに、設定中CURLOPT_REFERERに明らかに間違った変数を使用しました。($ch)

編集:

次の行が欠落しているようです。

curl_setopt($curl_connection, CURLOPT_POST, true);
于 2012-08-09T11:44:28.543 に答える
0

これを試して:

curl_setopt($ch, CURLOPT_SSLVERSION, 3); // OpenSSL issue
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  // Wildcard certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

それ以外の場合は、サーバーの構成について知っておく必要SSLがあります。問題になる可能性があります。

POSTまた、 vars を配列として設定することもできます。

curl_setopt($ch, CURLOPT_POSTFIELDS, array('param1' => 'value1', 'param2' => 'value2'));

更新:そして、SSLoverを使用しようとしていますHTTP

$curl_connection = curl_init('http://somedomain.com/cgi-bin/login.pl');

に修正してみてURLくださいHTTPS

于 2012-08-09T12:06:48.577 に答える
0

次のように、ur curl opt コードを修正してみてください。

curl_setopt($curl_connection, CURLOPT_POST, true);
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURL_COOKIEFILE, $cookie);
curl_setopt($curl_connection, CURL_VERBOSE, true);

これが役立つことを願っています..

于 2012-12-05T20:08:45.727 に答える