Php Curl-无法检索隐藏的输入字段值

Php Curl-无法检索隐藏的输入字段值,php,html,authentication,curl,dom,Php,Html,Authentication,Curl,Dom,我正在尝试从网站提取CSRF令牌,以便通过我通过POST请求发送的凭据为我的成员在该页面上启用自动登录。不幸的是,该令牌包含在名为“\uuucsrf\utoken”的隐藏输入字段的值中 我已经使用以下代码成功地提取了名为“email”的输入字段的值,但是当我在上面提到的令牌字段上使用它时,它不会返回值 <?php $ch = curl_init("https://www.example.com/login.php"); curl_setopt($ch, CURLOPT

我正在尝试从网站提取CSRF令牌,以便通过我通过POST请求发送的凭据为我的成员在该页面上启用自动登录。不幸的是,该令牌包含在名为“\uuucsrf\utoken”的隐藏输入字段的值中

我已经使用以下代码成功地提取了名为“email”的输入字段的值,但是当我在上面提到的令牌字段上使用它时,它不会返回值

<?php

$ch = curl_init("https://www.example.com/login.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
$response = curl_exec($ch);

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($response);
$tags = $dom->getElementsByTagName('input');
for($i = 0; $i < $tags->length; $i++) {
    $grab = $tags->item($i);
    if($grab->getAttribute('name') === '__csrf_token') {
        $token = $grab->getAttribute('value');
    }
}
echo $token;
?>

你知道为什么搜索提到的名字不会返回一个值吗


谢谢!(编辑:打字错误)

@Barmar:当然,对不起。这是我复制的代码中的一个输入错误,仍然不起作用。可能与问题无关,但一旦它得到令牌,你应该打破循环。你有什么问题?它是没有找到隐藏的输入,还是找到了输入却没有得到值?你确定值是在HTML中,而不是用JavaScript动态添加的吗?@Barmar:这是一个很好的观点。当我使用GoogleDevMode查看页面时,我可以看到隐藏的输入字段,但是,一旦我对它进行卷曲,卷曲输出就不包含它。有没有办法用curl(可能是)js生成的代码获得完整的html?@Barmar:当然,对不起。这是我复制的代码中的一个输入错误,仍然不起作用。可能与问题无关,但一旦它得到令牌,你应该打破循环。你有什么问题?它是没有找到隐藏的输入,还是找到了输入却没有得到值?你确定值是在HTML中,而不是用JavaScript动态添加的吗?@Barmar:这是一个很好的观点。当我使用GoogleDevMode查看页面时,我可以看到隐藏的输入字段,但是,一旦我对它进行卷曲,卷曲输出就不包含它。有没有办法用curl(可能是)js生成的代码获得完整的html?