Вот моя проблема. У меня есть система отслеживания билетов, которая не очень удобна для пользователей, но у меня есть желание, чтобы мои пользователи отправляли «билеты» в систему, чтобы они ее не видели.
Я дошел до того, что использовал собственную форму HTTP и отправил сообщение в систему отслеживания билетов. Одной из проблем является то, что страница «успех / завершение» имеет тенденцию вводить людей в заблуждение. Итак, я подумала ... хорошо, поскольку я не могу изменить систему заявок, чтобы использовать другую страницу «успеха». Я просто займусь обменом HTTP Post с CURL и сообщу о пользовательской странице успеха или проблемы. Вот какой-то абстрактный код.
Файл: tickethelper.php
<?php
extract($_POST);
$url = 'TICKETSYSTEMURL';
$fields = array(
'fullname'=>urlencode($fullname),
/*many more fields*/
);
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);
curl_setopt($ch, CURLOPT_MAXREDIRS, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);
if((strlen(strstr($contents,'Your ticket has been submitted')))>0){
header("Location: http://THANKYOU");
}
else{
header("Location: http://OOPS");
}
?>
Однако я понял, что мне не хватает загрузки файла. Большинство примеров CURL, которые я видел, связаны с загрузкой локальных файлов на удаленную страницу HTTP POST.
Как мне обработать получение файла из формы HTTP моего пользователя, обработать его в 'tickethelper' и отправить его в 'TICKETSYSTEMURL'?
-Israel