Php 登录到另一台服务器
有什么问题吗。。。我不能登录Php 登录到另一台服务器,php,curl,Php,Curl,有什么问题吗。。。我不能登录 执行此脚本后,如果我转到,它应该登录。如何执行此操作?您应该将CURLOPT\u RETURNTRANSFER设置为true。您的$result可能是空的 此外,在设置CURLOPT_REFERER时,您显然使用了错误的变量。($ch) 编辑: 似乎缺少以下行: $cookie="cookie.txt"; $data = array(); $data['global_id'] = "raj"; $data['global_password'] = "raj";
执行此脚本后,如果我转到,它应该登录。如何执行此操作?您应该将
CURLOPT\u RETURNTRANSFER
设置为true
。您的$result可能是空的
此外,在设置CURLOPT_REFERER
时,您显然使用了错误的变量。($ch)
编辑:
似乎缺少以下行:
$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);
试试这个:
curl_setopt($curl_connection, CURLOPT_POST, true);
否则,您应该了解服务器的SSL
配置。这可能是个问题
您还可以将POST
vars设置为数组:
curl_setopt($ch, CURLOPT_SSLVERSION, 3); // OpenSSL issue
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Wildcard certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
更新:您正试图通过HTTP
使用SSL
curl_setopt($ch, CURLOPT_POSTFIELDS, array('param1' => 'value1', 'param2' => 'value2'));
尝试将
URL
更正为HTTPS
尝试修复您的URL代码,如下所示:
$curl_connection = curl_init('http://somedomain.com/cgi-bin/login.pl');
希望有人投了反对票。。请告诉我原因?这是客户端要求:)我认为ssl选项不是问题所在。。。没有HTTPS连接没有HTTPS连接:-(您如何知道没有
HTTPS
连接?您使用的是curl\u getinfo()
还是smth.else?
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);