PHP echo CSRF&国家没有出现

时间:2016-08-24 05:39:40

标签: php curl php-curl

Greetings StacksOverFlow Devs,

我试图弄清楚为什么当我尝试回复它时网站上隐藏的输入值没有出现,我使用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/>";

?> 

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

1 个答案:

答案 0 :(得分: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');