Php cURL登录-不使用电子邮件输入中的@

Php cURL登录-不使用电子邮件输入中的@,php,curl,Php,Curl,我正在尝试使用cURL登录一个网站,但它似乎不起作用。我开始在我自己的网站上测试它,它可以工作,但是当我在我真正需要的网站上尝试时,它不会登录,只会得到登录页面 $loginUrl = 'https://www.ekomi.co.uk/login.php'; $postData = 'login_email=-----&login_passwort=-----'; $ch = curl_init(); $agent = $_SERVER['HTTP_USER_AGENT']; cur

我正在尝试使用cURL登录一个网站,但它似乎不起作用。我开始在我自己的网站上测试它,它可以工作,但是当我在我真正需要的网站上尝试时,它不会登录,只会得到登录页面

$loginUrl = 'https://www.ekomi.co.uk/login.php';
$postData = 'login_email=-----&login_passwort=-----';

$ch = curl_init();
$agent = $_SERVER['HTTP_USER_AGENT'];

curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/cookies.txt');

$postResult = curl_exec($ch);
print_r($postResult);
它确实给出了一个错误,$_服务器索引未定义,但它仍然允许我登录到我的站点,而且我假设$postData应该是用户和密码字段的名称

脚本是否有任何问题可能是问题所在,或者可能是站点登录的方式

编辑


问题似乎是因为登录电子邮件中的@符号,我尝试按照其他问题中的建议放置%40,但这不起作用。

首先必须导航到该页面并获取csrf(跨站点请求伪造-基本上,它检查用户是否看到登录表单,在会话中设置随机散列,并检查您是否返回该表单),然后发布帖子。

您是从命令行还是Web服务器运行此脚本?@Edward144使用cookie文件名的完整路径,而不是相对路径。例如,c:/xyz/cookies/cookies.txtNo,不幸的是,它仍然无法正常工作。字段上有javascript,可以删除导致问题的click.Colud上的值?