cURL을 사용하여 한 사이트에서 다른 웹 사이트로 양식을 제출하려고합니다. 그러나 그것은 내게 몇 가지 $ fields_string 변수 오류 (정의되지 않은 변수)를 제공하고 있습니다.cURL 변수 오류
내가 처음으로 cURL을 작업하고 있으며 그에 관한 많은 지식이 없습니다. 그래서 양식을 성공적으로 제출할 수있는이 문제를 해결하도록 안내해주십시오.
정보 : 현재 localhost에서 작업 중이며 테스트를 위해 localhost에 다른 양식을 제출하려고합니다. 여기
이 내 HTML 양식입니다<form action="submit.php" method="POST">
<INPUT NAME="title" TYPE="text" CLASS="qa-form-tall-text custom-ask-text" value="" placeholder="Ask your question" autocomplete="off" role="textbox">
<TEXTAREA NAME="content" CLASS="qa-form-tall-text"></TEXTAREA>
<INPUT NAME="tags" TYPE="text" CLASS="qa-form-tall-text custom-ask-text" value="">
<label><input type="checkbox" class="qa-form-tall-checkbox" checked="" value="1" name="q_notify">Email me if my question is answered or commented on</label>
<INPUT CLASS="custom-ask-submit" TYPE="submit" value="ask">
<INPUT TYPE="hidden" NAME="doask1" VALUE="1">
</form>
덕분에 내 코드
<?php
$url = 'http://localhost/qa/ask';
$fields = array(
'title'=>urlencode($_POST['title']),
'content'=>urlencode($_POST['content']),
'tags'=>urlencode($_POST['tags']),
'q_notify'=>urlencode($_POST['q_notify']),
);
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
$result = curl_exec($ch);
curl_close($ch);
?>
당신
편집 : NEW CODE
<?php
$url = 'http://localhost/qa/ask';
$fields = array(
'title'=>$_POST['title'],
'content'=>$_POST['content'],
'tags'=>$_POST['tags'],
'q_notify'=>$_POST['q_notify'],
);
$fields_string = '';
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
$result = curl_exec($ch);
curl_close($ch);
?>
모든 것이 옳다면 틀린 URL을 할당하고있을 수 있습니다. question2answer.org 스크립트를 사용하고 있으며 내 웹 사이트에서 내 사용자가 양식/질문을 제출할 수있는 양식을 만들고 싶습니다.
편집 : 당신은 $fields_string
에 추가하고 @GBD
Curl error: array(22) { ["url"]=> string(23) "http://localhost/qa/ask" ["content_type"]=> string(24) "text/html; charset=utf-8" ["http_code"]=> int(200) ["header_size"]=> int(443) ["request_size"]=> int(211) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(0.141) ["namelookup_time"]=> float(0) ["connect_time"]=> float(0.016) ["pretransfer_time"]=> float(0.016) ["size_upload"]=> float(87) ["size_download"]=> float(16130) ["speed_download"]=> float(114397) ["speed_upload"]=> float(617) ["download_content_length"]=> float(-1) ["upload_content_length"]=> float(87) ["starttransfer_time"]=> float(0.141) ["redirect_time"]=> float(0) ["certinfo"]=> array(0) { } ["redirect_url"]=> string(0) "" }
아무런 결과가 없습니다. 양식을 제출하지 않지만 오류없이 프로세스를 통과하는 것을 의미하고 CSS없이 035 웹 사이트 페이지 ($ url)로드를 제출하면 –
$ 필드를 정의 할 때 urlencode 비트도 제거해야합니다. 내가 말했듯이, 컬은 당신을 위해 모든 것을 해줍니다. –
당신은''title '=> urlencode ($ _ POST ['title '])'~''title'=> $ _ POST [ 'title']' –