PhP获取数据未分配给变量

时间:2012-03-28 21:42:03

标签: 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 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;
}

问题是第22行"$invoice = $_GET['invoice'];"实际上并未提取获取数据!如果我取消注释"//$invoice="36";并注释掉get部分,则代码可以正常工作。

任何想法?

4 个答案:

答案 0 :(得分:0)

您是否实际在URL查询字符串中传递发票数据?这就是$ _GET的用途。如果您要从表单提交数据,请改用$ _POST。

如果这没有帮助,请尝试print_r($_GET)并确保数据实际按照您期望的方式传递,并使用正确的变量名称。

答案 1 :(得分:0)

您确定要提交GET而非POST吗?尝试执行print_r($_GET);print_r($_POST);,查看“发票”的位置。

答案 2 :(得分:0)

尝试将其添加到代码顶部

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

答案 3 :(得分:0)

IT意味着您不发送invoice作为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
}