我正在研究核心php。 我正在通过curl请求一个URL。这正在我的开发服务器上工作,但同样的事情不适用于实时服务器。
以下是我的代码:
$url = "http://www.streamatemodels.com/login.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'submitted=1&g=&sausr='.urlencode('username').'&sapwd='.urlencode('password').'');
$result = curl_exec($ch);
$error = curl_errno($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
print_r($result);
如果有人有解决方案,请帮帮我。
更新
我使用新的用户名和密码检查了这一点,但同样的事情发生了。它在我的开发服务器上工作,但不在现场和本地主机上工作。
答案 0 :(得分:0)
以下一行:
curl_setopt($ch, CURLOPT_POSTFIELDS, 'submitted=1&g=&sausr='.urlencode('username').'&sapwd='.urlencode('password').'');
应更改为:
curl_setopt($ch, CURLOPT_POSTFIELDS, 'submitted=1&g=&sausr='.urlencode($username).'&sapwd='.urlencode($password).'');
如果仍然无法正常工作,请尝试在curl_setopt之外创建查询字符串:
$params = 'submitted=1&g=&sausr='.urlencode($username).'&sapwd='.urlencode($password).'';
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
另一个建议:使用http_build_query($params)
是一种更好的做法<强>更新强>
我有时间检查代码,它在我的本地主机上工作正常(意思是:检查你的用户名/密码!):