-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 に答える