通过我的php代码以其他网站的形式填写数据

To fill data in the form of other website via my php code

这里我尝试通过我的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);

您需要更正您的 post 数据 string

$postdata = "isbn=".$isbn."&price=".$price;

而不是

$postdata = "isbn=".$isbn."price=".$price;

您的 post 数据字符串中缺少 &

在评论区聊了几句后,你告诉我你想要一个条形码的 PDF 文件。 问题是,您在 curl 脚本中链接到的页面上的表单实际上 "submits" 表单到另一个 Php 脚本(在 http://bookow.com/barcodesubmit.php 找到)

同时,它还有一个需要注意的参数,按钮"generate pdf"或"generate png"。这告诉我必须提交其中一个按钮上的名称才能生成正确的输出。所以,我将数组设置为:

  array(
          "isbn" => $isbn,
          "price" => $price,
          "submitpdf" => "",
        )
      )
   ); 

现在,输出将是一个实际的 PDF,因此如果只是回显到浏览器,将会显示一些乱七八糟的乱码文本,因此,要实际下载文件并将其呈现为 PDF,我们将设置 [=文档的 25=] 和附件 header:

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);