2016-08-24 1 views
-1

인사말 StacksOverFlow 개발진,PHP 에코 CSRF 및

앞에서 내가 그것을 에코하려고 내가으로, preg_match_all를 사용 숨겨진를 만들 때 웹 사이트에 숨겨진 입력 값이 나타나지 않는 이유를 알아 내려고 노력하고있어 나타나는하지 STATE 값 POST.

나는 동시에 둘 다 에코를하고 싶지만 그것은 내 문제가된다. couz는 나타나지 않는다.

<?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/>"; 

?> 

누군가가 이것에 대해 좀 도와 줄래 : 여기

내 코드?

답변

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'); 
+0

내 코드가 작동하는 다른 방법이 있습니까? Xpath/Dom을 사용하는 것 이외에 –

+0

필드를 가져 오기 위해 정규 표현식을 작성할 수는 있지만 DOM은 더 안정적입니다. '$ _POST'는 당신이 어떤 데이터를 포스팅하지 않기 때문에 작동하지 않을 것입니다. – Kamran

+0

팀 뷰어보다 몇 분 동안 나를 도와 줄 시간이 있습니까? 아니면 그게 가능할까요? –