-2

我正在研究核心 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);

如果有人有解决方案,请帮助我。


更新

我用新的用户名和密码检查了这个,但同样的事情发生了。它在我的开发服务器上工作,但不能在实时和本地主机上工作。

4

1 回答 1

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)

更新

我有时间检查代码,它在我的本地主机上运行良好(意思是:检查您的用户名/密码!):

在此处输入图像描述

于 2013-09-19T15:01:57.107 回答