PhP获取未分配给变量的数据

PhP获取未分配给变量的数据,php,post,get,Php,Post,Get,我正在使用PHP为一个小项目生成一个条形码,但是似乎无法让它工作。我是PHP的初学者,似乎找不到我做错了什么 这是我的密码: <?php // Including all required classes require_once('class/BCGFontFile.php'); require_once('class/BCGColor.php'); require_once('class/BCGDrawing.php'); // Including the barcode tech

我正在使用PHP为一个小项目生成一个条形码,但是似乎无法让它工作。我是PHP的初学者,似乎找不到我做错了什么

这是我的密码:

<?php

// Including all required classes
require_once('class/BCGFontFile.php');
require_once('class/BCGColor.php');
require_once('class/BCGDrawing.php');

// Including the barcode technology
require_once('class/BCGcode39.barcode.php');

// Loading Font
$font = new BCGFontFile('./class/font/Arial.ttf', 18);

// The arguments are R, G, B for color.
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255);

//$invoice="36";
$drawException = null;
$invoice = $_GET['invoice'];
try {
$code = new BCGcode39();
$code->setScale(2); // Resolution
$code->setThickness(30); // Thickness
$code->setForegroundColor($color_black); // Color of bars
$code->setBackgroundColor($color_white); // Color of spaces
$code->setFont($font); // Font (or 0)
$code->parse($invoice); // Text
} catch(Exception $exception) {
$drawException = $exception;
}

您是否确实在URL查询字符串中传递发票数据?这就是你得到美元的目的。如果您是从表单提交数据,请改用$\u POST


如果这没有帮助,请尝试
print\r($\u GET)
,并确保数据确实以您期望的方式传递,并且使用正确的变量名

您确定是使用GET而不是POST提交吗?尝试执行
print\r($\u GET)和<代码>打印($\u POST)并查看“发票”的位置。

尝试将其添加到代码顶部

if(isset($_GET['invoice'])){$invoice = $_GET['invoice']; }else{ echo 'No invoice'; exit;}

这意味着您没有将发票作为GET方法发送,您需要检查它是否存在

$invoice = isset($_GET['invoice']) ? $_GET['invoice'] : 'default invoice';
/*I dont know what is invoice var and its type , but its always good to validate 
   user input*/
if(validInvoice($invoie)) {
  //doStuff
}

尝试print_r($\u GET)或print_r($\u REQUEST)查看实际获得的值。我猜某处有个打字错误。此外,只需查看URL即可轻松检查GET变量。变量$\u GET在URL中
test.php?invoice=45
我可以通过访问Site.com/tmp/barcodegen.1d-php5.v4.1.0/test.html来准确验证URL?invoice=33什么是
print\r($\u GET)给你看?顺便问一下,为什么包含PHP的文件具有HTML文件扩展名?您当然可以配置web服务器来实现这一点,显然您已经配置了,但您为什么要这样做呢?:)打印(美元);;根本不输出任何东西;这是可能的,因为最终结果是整个PhP(条形码)的图像。我可以通过访问Site.com/tmp/barcodegen.1d-php5.v4.1.0/test.html?invoice=33来准确验证URL。您是否在本地服务器上运行此功能?否,当前托管在运行完整PhP解决方案(zen cart,interspire)的全功能网站上很长一段时间没有问题。如果您尝试打印($\u GET)
,您可以将其放在代码中的任何位置(可能放在您的
$invoice
?)之前,显示什么?与表单的GET或post不一样,这两种方法都会导致“错误:未输入数据”不,整个代码停止工作,只显示alt标记,它是硬编码的“条形码”,而不是动态图像