使用PHP登录McGrawhill网站

使用PHP登录McGrawhill网站,php,curl,login-script,Php,Curl,Login Script,我想使用PHP登录McGrawhill网站,然后将用户重定向到他们的帐户区域。我已经为我的UI创建了一个简单的登录HTML页面,这是我的PHP部分: <?php if(!isset($_POST['loginUserName'],$_POST["loginPassword"],$_POST["force"])||$_POST['loginUserName']==''||$_POST["loginPassword"]=='') die('{code:"FAIL"}'); if($_P

我想使用PHP登录McGrawhill网站,然后将用户重定向到他们的帐户区域。我已经为我的UI创建了一个简单的登录HTML页面,这是我的PHP部分:

<?php if(!isset($_POST['loginUserName'],$_POST["loginPassword"],$_POST["force"])||$_POST['loginUserName']==''||$_POST["loginPassword"]=='')
    die('{code:"FAIL"}');
if($_POST["force"]=='')
    $_POST["force"] = false;

$data_string = "foce=".$_POST["force"]."&loginUserName=".$_POST["loginUserName"]."&loginPassword=".$_POST["loginPassword"];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"http://connected.mcgraw-hill.com/connected/login.do");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
die($result);


当我将参数发送到网站时,它会给我两个JSON编码的参数,第一个是登录状态,第二个是用户登录成功后应该去哪里的uri。当我发送user/pass并且可以获得重定向uri时,它可以正常工作,但是当我想要重定向用户时,它会在我想要登录到用户帐户区域时将我转发到第一个McGrawhill登录页面。有人能帮我吗?

当您登录时,远程服务器会向您发送一个会话cookie,您应该重用它,以便访问需要用户登录的私人页面。当有人使用浏览器登录时,这一切正常,会话cookie被设置,然后被重用以访问这些私有页面

但是,当您使用PHP脚本登录时,实际上是您的PHP脚本获取会话cookie(而不是脚本的用户),这意味着如果您将用户重定向到私有页面,它将不起作用,因为他们没有会话cookie


我认为没有办法从PHP脚本中设置他们的会话cookie,因此你的想法行不通。

请注意尽可能仔细、笼统地编写问题-这些问题是为子孙后代准备的,而不仅仅是针对单个用例。