PhP获取未分配给变量的数据
我正在使用PHP为一个小项目生成一个条形码,但是似乎无法让它工作。我是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
// 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标记,它是硬编码的“条形码”,而不是动态图像