2012-03-28 3 views
1

작은 프로젝트의 바코드 생성을 위해 PHP를 사용하고 있지만 작동하지 않는 것 같습니다. 나는 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 섹션을 주석 처리하면 코드가 제대로 작동합니다.

어떤 아이디어?

+0

실제 얻고있는 값을 보려면 print_r ($ _ GET) 또는 print_r ($ _ REQUEST)를 사용해보십시오. 어딘가에 오타가 있다고 생각합니다. 또한 GET 변수는 URL을 보면 쉽게 확인할 수 있어야합니다. –

+0

변수 $ _GET이 (가) URL에 있습니까 ?? 'test.php? invoice = 45' – tttony

+0

Site.com/tmp/barcodegen.1d-php5.v4.1.0/test.html?invoice=33로 이동하면 URL을 정확하게 확인할 수 있습니다. – NRGdallas

답변

0

실제로 URL 쿼리 문자열에 송장 데이터를 전달하고 있습니까? 이것이 $ _GET의 목적입니다. 양식에서 데이터를 제출하는 경우 대신 $ _POST를 사용하십시오.

그래도 도움이되지 않는다면, print_r($_GET)을 시도하고 데이터가 실제로 예상대로 전달되고 올바른 변수 이름으로 전달되는지 확인하십시오.

+0

이 양식에서 가져 오기 또는 게시로 작동하지 않으면 두 방법 모두 "오류 : 데이터가 입력되지 않았습니다." – NRGdallas

0

POST가 아닌 GET으로 제출 하시겠습니까? print_r($_GET);print_r($_POST);을 시도하고 '인보이스'가 어디인지 확인하십시오.

+0

Site.com/tmp/barcodegen.1d-php5.v4.1.0으로 이동하여 URL을 정확하게 확인할 수 있습니다. /test.html?invoice=33 – NRGdallas

+0

로컬 서버에서 실행 중이십니까? –

+0

아니요, 현재 아무런 문제없이 오랜 시간 동안 전체 PHP 솔루션 (zen cart, interspire)을 실행 해 온 완전한 기능의 웹 사이트에서 호스팅됩니다. – NRGdallas

0

노력 IT는 GET 방법으로 invoice을 전송 해달라고 의미 코드

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

아니요, 전체 코드가 작동하지 않고 단순히 alt 태그는 동적 이미지 대신 하드 코딩 된 "바코드"입니다. – NRGdallas

0

의 상단이 추가, 당신은 존재하는 경우 확인이 필요합니다.

$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 
} 
관련 문제