2011-04-10 3 views
0

내가 PHP 컬 함께 일하고 값들하는 것은 양식을 조회 할 수 있습니다. POST 쿼리를 수행하므로 연관 배열을 사용하고 있습니다. 이 같은 형태의 모습입니다 :PHP 컬 양식 데이터 : 여러 변수, 동일한 이름, DIFF.

$postfields = array(); 
$postfields ["var"] = "value1"; 
$postfields ["var"] = "value2"; 
$postfields ["var"] = "value3"; 
$postfields ["var"] = "value4"; 
$postfields ["var"] = "value5"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16"); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_REFERER, $referer); 
$result = curl_exec ($ch); 
curl_close ($ch); 
, PHP 이전 4 "VAR"지정을 덮어 씁니다이 경우 분명히

만 :

<form action="form.php" method="POST"> 
... 
    <input type="hidden" name="var" value="value1"> 
    <input type="hidden" name="var" value="value2"> 
    <input type="hidden" name="var" value="value3"> 
    <input type="hidden" name="var" value="value4"> 
    <input type="hidden" name="var" value="value5"> 
... 
</form> 

내 컬 쿼리를 수행하는 동안, 나는 다음과 같은 코드가 있습니다 value5가 매개 변수로 전달되면 value1 .. value4가 누락되었다는 오류가 발생합니다. "var"배열을 만들려고했지만 오류 메시지도 나에게 표시됩니다.

뭔가 내려다 보입니까? 감사

답변

0

첫 번째 문제는 양식이다. method = "POST"일 때 type = "POST"입니다. 숨겨진 필드는 name 특성에 []를 사용하여 배열이어야합니다. 대신 다음을 시도하십시오.

<?php 


if (isset($_POST['submit'])) 
{ 
var_dump($_POST); 
} 
?> 

<form action="" method="POST"> 
... 
    <input type="hidden" name="var[]" value="value1"> 
    <input type="hidden" name="var[]" value="value2"> 
    <input type="hidden" name="var[]" value="value3"> 
    <input type="hidden" name="var[]" value="value4"> 
    <input type="hidden" name="var[]" value="value5"> 
    <input type="submit" name="submit" value="submit"> 
... 
</form> 

실행하면 값이 배열로 표시됩니다. CURL 요청에서이를 복제하려면 다음을 수행하십시오.

$postfields = array(); 
... 
$postfields["var"][] = "value1"; 
$postfields["var"][] = "value2"; 
$postfields["var"][] = "value3"; 
$postfields["var"][] = "value4"; 
$postfields["var"][] = "value5"; 
+1

죄송합니다.이 글을 쓰는 동안 오타였습니다. 나는 폼의 필드 여부를 제어 할 수 없습니다 그들이 정의하는 방법 (나는 그들이 배열로 정의되어 있어야합니다 알고있다). 재미있는 점은 내 브라우저에서 코드를 실행할 때 완벽하게 작동한다는 것입니다. – curiousgeorge

+0

전체 컬 코드를 제공하고, 거기에 아무 잘못이 있다면 내가 볼하시기 바랍니다. – Gazler