2012-03-30 3 views
0

컬을 사용하여 회원 영역에 자동 로그인을하고 있지만 성공했지만 로그인 후에 회원 영역 내에 양식을 게시하고 싶지만 그 방법을 모르겠습니다. 다음과 같이 코드를 인쇄 위컬 로그인 및 회원 영역에 다시 게시

$main_url = 'https://www.url.com'; 

$redirect = '/reports/marks-checker'; 
$email = '[email protected]'; 
$password = 'pass123'; 


$url= $main_url.'/account/login'; 
$cookie="cookie.txt"; 

$postdata = 'redirect='.$redirect.'&EmailAddress='.$email.'&Password='.$password.'&RememberMe=1'; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 
echo $result; 

curl_close($ch); 

(에코) 멤버 영역과 형태 (아래) 내가 쿼리 할 ...

<form method="POST"> 
<input type="radio" name="IDS" value="F" checked/> 
<input type="radio" name="IDS" value="H"/> 
<textarea name="q" cols="80" rows="15" wrap="none" style="width:99%"></textarea> 
<select name="SortBy"> 
    <option value="0">rank</option> 
    <option value="1">date</option> 
</select> 
<input type="submit" name="getmarks" value="Check marks"/> 
</form> 
..., 내 현재 코드를 제발 도움이 될 수 있습니다

나는이 양식에 데이터를 게시하고 정규식을 사용하여 데이터를 얻을 수 있도록 결과를 얻고 싶습니다. 감사.

답변

1

당신은 당신이 그들을 할당 할 양식 변수의 배열과 가치를 창출하기 위해 DOM 함수 또는 정규 표현식 또는 (귀하의 상황에 적용 할 수있는 무엇이든) 형태의 사전 지식을 사용해야합니다

$form_vars = array(); 
이름/값 쌍 IDS/F 또는 H, Q/텍스트, SortBy/0 또는 1

$form_vars[$var_name] = $value; 

예와

$encoded_form_vars = http_build_query($form_vars); 

는 다음과 같은 것을 시도 :

$form_vars['IDS'] = "H"; 

이 그런 다음 쿼리를 작성하는 http_build_query 기능을 사용

function postForm($url, $fields, $referer='') { 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_HTTPHEADER,array("Expect:")); 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_POST, 1); 
      curl_setopt($ch, CURLOPT_REFERER, $referer); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
      return curl_exec($ch); 
    } 

이런 식으로 호출 :

$result = postForm($url, $encoded_form_vars);