2012-03-28 7 views
1

zugewiesen Ich benutze ein PHP, um einen Barcode für ein kleines Projekt zu generieren, aber es scheint nicht zu funktionieren. Ich bin ziemlich Anfänger bei PHP und kann nicht finden, was ich falsch mache.PhP Get Data Wird nicht der Variablen

Hier ist mein Code:

<?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; 
} 

Das Problem ist, dass die Linie 22 "$invoice = $_GET['invoice'];" tatsächlich die Daten bekommen nicht ziehen! Wenn ich die "//$invoice="36"; auskommentieren und den get-Abschnitt auskommentiere, funktioniert der Code richtig.

Irgendwelche Ideen?

+0

Probieren Sie print_r ($ _ GET) oder print_r ($ _ REQUEST) aus, um zu sehen, welche Werte Sie tatsächlich erhalten. Ich vermute, dass irgendwo ein Tippfehler ist. GET-Variablen sollten auch einfach durch einen Blick auf die URL zu überprüfen sein. –

+0

die Variable $ _GET ist in der URL ?? 'test.php? invoice = 45' – tttony

+0

Ich kann die URL genau überprüfen, indem ich auf Site.com/tmp/barcodegen.1d-php5.v4.1.0/test.html?invoice=33 gehe. – NRGdallas

Antwort

0

Übergeben Sie tatsächlich die Rechnungsdaten in der URL-Abfragezeichenfolge? Dafür ist $ _GET da. Wenn Sie Daten aus einem Formular übermitteln, verwenden Sie stattdessen $ _POST.

Wenn das nicht hilft, versuchen Sie print_r($_GET) und stellen Sie sicher, dass die Daten tatsächlich so weitergegeben werden, wie Sie erwarten, und unter dem richtigen Variablennamen.

+0

funktioniert nicht als get oder post von einem Formular, beide Methoden führen zu einem "Fehler: keine Daten wurde eingegeben" – NRGdallas

0

Sind Sie sicher, dass Sie mit GET und nicht POST einreichen? Versuchen Sie es mit print_r($_GET); und print_r($_POST); und sehen Sie, wo 'Rechnung' ist.

+0

Ich kann die URL genau überprüfen, indem Sie auf Site.com/tmp/barcodegen.1d-php5.v4.1.0 gehen /test.html?invoice=33 – NRGdallas

+0

Führen Sie dies auf einem lokalen Server aus? –

+0

Nein, derzeit gehostet auf einer voll funktionsfähigen Website, die lange php-Lösungen (zen cart, interspire) ohne Probleme ausgeführt hat. – NRGdallas

0

versuchen, diese zu Anfang des Codes

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

nein, funktioniert der gesamte Code funktioniert, zeigt einfach die alt-Tag, bei dem es sich um einen fest codierten "Barcode" anstelle eines dynamischen Bildes handelt – NRGdallas

0

IT bedeutet, dass Sie invoice als GET-Methode gesendet tun sie nicht, müssen Sie prüfen, ob es vorhanden ist.

$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 
}