-1

问候 StacksOverFlow 开发人员,

我试图更早地弄清楚为什么当我尝试回显它时网站上的隐藏输入值没有出现,我使用 preg_match_all 并将隐藏值设为 POST。

我想同时回应两者,但这是我的问题,因为它没有出现。

这是我的代码:

<?php

function get_data($url)
{   
    $ch = curl_init();   
    $timeout = 10;   
    curl_setopt($ch,CURLOPT_URL,$url);   
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);   
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);   
    $data = curl_exec($ch);   
    curl_close($ch);   
    return $data;
}  

$returned_content = get_data('https://secure.tesco.com/account/en-GB/login');

$container = $returned_content;

preg_match_all('(<form\s.*</form>)', $container, $forms);

print_r($forms);

$_POST['_csrf'] = $csrf;
$_POST['state'] = $state;

echo "<font color=red><b>CSRF</b></font> : ".$csrf."<br/>";
echo "<font color=red><b>STATE</b></font> : ".$state."<br/>";

?> 

有人可以帮我解决这个问题吗?

4

1 回答 1

0

Xpath 是尝试这个的方法!

$dom = new \DOMDocument();
@$dom->loadHTML($container);
$x = new \DOMXPath($dom);
echo $_csrf = $x->query('//input[@name="_csrf"]')->item(0)->getAttribute('value');
echo $state = $x->query('//input[@name="state"]')->item(0)->getAttribute('value');
于 2016-08-24T05:54:58.040 回答