Curl 卷曲跟随位置工作不正常

Curl 卷曲跟随位置工作不正常,curl,php,Curl,Php,我目前正在编写一个脚本,用户必须填写用户名和密码。然后,当用户登录时,脚本检查他/她的用户名是否已在我的数据库中注册。如果是这种情况,则用户登录到我的外部网站(使用cURL),如果不是,则用户登录到我无权访问数据库的其他网站 if($count==1){ $curl = curl_init('http://www.myownwebsite.com/'); curl_setopt ($curl, CURLOPT_POSTFIELDS, "gebruikersnaam=$myuser

我目前正在编写一个脚本,用户必须填写用户名和密码。然后,当用户登录时,脚本检查他/她的用户名是否已在我的数据库中注册。如果是这种情况,则用户登录到我的外部网站(使用cURL),如果不是,则用户登录到我无权访问数据库的其他网站

if($count==1){
    $curl = curl_init('http://www.myownwebsite.com/');
    curl_setopt ($curl, CURLOPT_POSTFIELDS, "gebruikersnaam=$myusername&wachtwoord=$mypassword");
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_exec($curl);
}
else {
    $curl = curl_init('http://www.differentwebsite.com/');
    curl_setopt ($curl, CURLOPT_POSTFIELDS, "username=$myusername&password=$mypassword");
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_exec($curl);
}
如您所见,我的脚本将行数存储在一个count变量中,如果查询结果为1行,它将登录到我的站点,如果不是,它将登录到另一个站点。用户名和密码检查在用户登录的实际网站上完成

现在我的问题是,我希望它“跟踪位置”,或者可以这么说。现在的脚本将(?)重定向到,例如
http://www.myownwebsite.com/checklogin.php
(我正在使用的脚本是checklogin.php)

我尝试使用followlocation cURL函数来解决这个问题,但这样做会给我一个警告:

警告:curl_setopt():启用安全模式或在中设置了open_basedir时,无法激活curl_FOLLOWLOCATION-----

我使用phpinfo()检查了我的php.ini;函数和安全模式被关闭,open_basedir没有值,所以我认为这不是问题所在。我找到了一些其他可能的解决方案,但到目前为止,没有任何办法帮助我解决这个问题

如果有任何不清楚的地方,请随时询问。

您无法通过向服务器的登录页面发送POST请求来登录用户。发生的事情是您登录了服务器,而不是用户

此外,不能使用PHP使用POST数据重定向用户。您所能做的就是使用
method=“POST”
action=”创建表单http://www.differentwebsite.com/“
带有隐藏字段
用户名
密码
,这些字段将在页面加载时通过JavaScript提交。下面是您可以输出的页面的简单示例

<html>
<head>
<script type="text/javascript">
function submit_form()
{
    document.myform.submit();
}
</script>
</head>
<body onload="submit_form();">
    <form method="POST" name="myform" action="http://www.google.com/">
        <input type="hidden" name="username" value="someusername"/>
        <input type="hidden" name="password" value="somepassword"/>
    </form>
</body>
</html>

因此,输出会直接发送给用户。

CURLOPT_MAXREDIRS的值是多少?脚本中没有MAXREDIRS,所以我猜可能是默认值吧?我需要用它做些什么吗?正如我所见。。您正在使用CURLOPT_POSTFIELDS,但未设置CURLOPT_POST的值。你是在别的地方设置的吗?请再次阅读错误消息。到目前为止,您的故障排除没有得到正确的结果,因为您可以选择打开安全模式或打开basedir。你说两者都不是。请仔细检查失败的具体请求。对于它,它可能不是你在别处查到的。总是为具体的要求而烦恼,而不是空中楼阁。-也请看@new_developer,这是错误的,
CURLOPT_POST
是隐含的。嗯,我很困惑。我如何实现这一点?添加curl_setopt($curl,CURLOPT_RETURNTRANSFER,true)后;同样的警告。我知道,仅仅添加RETURNTRANSFER不应该解决这个问题,但你也知道。我应该如何用隐藏字段实现这个表单呢?啊,是的,在玩了一会儿之后,我让它工作了。非常感谢。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);