使用PHP登录McGraw hill网站

时间:2013-08-25 13:52:48

标签: 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($_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);

&GT;

当我将参数发送到网站时,它给了我两个JSON编码的参数,第一个:登录状态,第二个是用户在登录成功时应该去的地方。当我发送用户/通行证时,它可以正常工作,我可以获得重定向uri,但是当我想重定向用户时,它会将我转发到第一个McGrawhill登录页面,而我想登录到用户帐户区域。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

当您登录时,远程服务器会向您发送一个会话cookie,您应该重用该cookie以访问需要用户登录的私有页面。当有人使用浏览器登录时,这样可以正常工作,会话cookie得到设置,然后重新使用来访问这些私人页面。

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

我认为没有办法从PHP脚本设置会话cookie,所以你的想法不起作用。