到PHP的cygwin shell脚本

到PHP的cygwin shell脚本,php,authentication,cygwin,Php,Authentication,Cygwin,我正在尝试使用一个现有的shell脚本,它在cygwin下为我正确运行和执行,并用PHP重写它。脚本中我遇到问题的部分只是导航到登录页并成功登录 以下是shell脚本的一部分(有效): 下面是一些php代码,它试图执行上述命令 <?php error_reporting(E_ALL); ini_set("display_errors",1); $ch = curl_init(); $url = 'https://www.somewebsite.com/account/gotoLogin.

我正在尝试使用一个现有的shell脚本,它在cygwin下为我正确运行和执行,并用PHP重写它。脚本中我遇到问题的部分只是导航到登录页并成功登录

以下是shell脚本的一部分(有效):

下面是一些php代码,它试图执行上述命令

<?php
error_reporting(E_ALL);
ini_set("display_errors",1);

$ch = curl_init();
$url = 'https://www.somewebsite.com/account/gotoLogin.action';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

$response = curl_exec($ch);
curl_close($ch);

$ch = curl_init();
$url = 'https://www.somewebsite.com/account/login.action';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'login_url=' . '&login_email=someemail@example.com' . '&login_password=mypassword' . '&login_remember_me=on');
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);
curl_close($ch);
?>

1.)第二个shell脚本命令似乎引用了两个不同的URL。在运行PHP脚本时查看Firebug,我在Net/Status列“301永久移动”下看到一些javascript项。当访问实际网站时,会找到项目。所以我想这两个URL都是必需的。我环顾四周,但不太确定用PHP实现这一点的最简单方法

“登录\u action.html”“”

2.)当查看为实际站点生成的登录表单时,我没有看到标记为“login_url”的输入字段,这似乎有点奇怪,因为这个Shell脚本似乎指定了参数,但没有值

上面的PHP代码无法自动登录到网站


任何线索都很感激

HTTP 301是一个永久重定向。它告诉浏览器资源已永久移动到新URL。所以,您不需要两个URL。301很有趣。它还将它们显示为Size=0B,这似乎不正确。
<?php
error_reporting(E_ALL);
ini_set("display_errors",1);

$ch = curl_init();
$url = 'https://www.somewebsite.com/account/gotoLogin.action';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

$response = curl_exec($ch);
curl_close($ch);

$ch = curl_init();
$url = 'https://www.somewebsite.com/account/login.action';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'login_url=' . '&login_email=someemail@example.com' . '&login_password=mypassword' . '&login_remember_me=on');
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);
curl_close($ch);
?>