【发布时间】:2013-09-19 14:51:12
【问题描述】:
我正在研究核心 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);
如果有人有解决方案,请帮助我。
更新
我用新的用户名和密码检查了这个,但同样的事情发生了。它可以在我的开发服务器上运行,但不能在实时和本地主机上运行。
【问题讨论】:
-
您的两个环境是否都使用相同版本的 PHP 和 libcurl?查看cURL requirements for PHP。
-
您需要比“它不起作用”更具体。什么不工作?您遇到了什么错误?
-
您应该输出您的 url 并验证它是否相同,如果是并且我假设您收到 404 错误,请注意服务器可能阻止了您的生产服务器而不是您的开发服务器。这是你自己的服务器吗?如果它是第 3 方,它可能只是因为你发出过多请求而阻止了你,有时我犯了这个错误,并且我的应用程序中不需要的循环表现得像 DOS 攻击。