Здесь я пытаюсь заполнить данные в форме другого веб-сайта с помощью моего php-кода, а также код должен быть в состоянии представить данные этой формы, но он не работает:
Я попробовал это:
<?php
$isbn="9780471692874";
$price="56555";
$url="http://bookow.com/resources.php";
$postdata = "isbn=".$isbn."price=".$price;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
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, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
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);
После небольшой беседы в разделе комментариев вы сказали, что хотите получить PDF-код штрих-кода.
Дело в том, что форма на странице, на которую вы ссылаетесь в вашем скрипте curl, фактически «отправляет» форму другому скрипту Php (находится на http://bookow.com/barcodesubmit.php )
В то же время у него есть еще один параметр, на который мы должны обратить внимание: кнопка «генерировать pdf» или «генерировать png». Это говорит мне, что имя на одной из кнопок должно быть отправлено для создания правильного вывода. Итак, я установил массив следующим образом:
array(
"isbn" => $isbn,
"price" => $price,
"submitpdf" => "",
)
)
);
Теперь выходные данные будут представлять собой настоящий PDF-файл, и, следовательно, он будет отображать какой-то неоправданный потертый текст, если его просто отобразить в браузере, поэтому для фактической загрузки файла и его рендеринга в виде PDF-файла мы установим тип содержимого документа и заголовок вложения:
header("Content-Disposition: attachment; filename=barcode.pdf");
header("Content-Type: application/octet-stream");
Теперь, со всем этим, мы можем скачать наш штрих-код PDF. Полный рабочий скрипт ниже:
<?php
header("Content-Disposition: attachment; filename=barcode.pdf");
header("Content-Type: application/octet-stream");$isbn="9780471692874";
$price="56555";
$url="http://bookow.com/barcodesubmit.php";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
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, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS,http_build_query(
array(
"isbn" => $isbn,
"price" => $price,
"submitpdf" => "",
)
)
);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
echo $result;
curl_close($ch);
Вы должны исправить свои данные поста string
,
$ postdata = «isbn =». $ isbn. «&. Цена =»$ цена;
Вместо
$ postdata = «isbn =». $ isbn. «price =». $ price;
Ты пропал &
в вашей строке данных поста.