से एक्सेस किए जाने पर "डेटा स्रोत नाम नहीं मिला" मैं क्रिस्टल रिपोर्ट्स का उपयोग करके PHP से एक रिपोर्ट जेनरेट करने की कोशिश कर रहा हूं, कोड सही लगता है:क्रिस्टल रिपोर्ट रिपोर्ट उत्पन्न करने के लिए कोड सीएलआई में ठीक काम करता है, लेकिन ब्राउजर
<?php
set_time_limit(0);
if(isset($_GET['id']))
{
$id = $_GET['id'];
} else {
die('Please specify an ID');
}
$path = "c:\\wamp\\www\\billing\\reports";
$file = $chemin."\\bill_".$id.".pdf";
$app_obj = new COM("CrystalRuntime.Application") or Die ("Did not open");
$report= $path."\\bill.rpt";
$rpt_obj= $app_obj->OpenReport($report,1);
$app_obj->LogOnServer("p2ssql.dll","host","bdd","userbd","passwordbd");
$rpt_obj->EnableParameterPrompting = FALSE;
$rpt_obj->RecordSelectionFormula = "{F_DOCLIGNE.DO_Piece}='$id'";
$rpt_obj->ExportOptions->DiskFileName = $file;
$rpt_obj->ExportOptions->PDFExportAllPages = true;
$rpt_obj->ExportOptions->DestinationType = 1;
$rpt_obj->ExportOptions->FormatType = 31;
$rpt_obj->Export(false);
header("Content-Type: application/pdf");
readfile($file);
?>
यदि मैं कमांड लाइन से स्क्रिप्ट चलाता हूं, तो यह ठीक काम करता है, और मेरे पास पीडीएफ निर्यात और कंसोल में पार्स किया गया है।
लेकिन देखने के एक ब्राउज़र के बिंदु से, कहानी अलग है, आप अपाचे के माध्यम से अनुरोध मिलता है, मैं इस अपवाद:
com_exception: Source: Crystal Reports ActiveX Designer
Details : IM002:[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in C:\wamp\www\facture\report.php on line 25
रिपोर्ट पर, डेटाबेस कनेक्शन ODBC के माध्यम से किया जाता है, मैं इसका उपयोग नहीं कर सका, क्योंकि ओडीबीसी के साथ चिह्नित किसी अन्य ड्राइवर ने काम करने से इनकार कर दिया।
आप उपयोग कर रहे हैं '$ _GET [ 'आईडी']' खतरनाक तरीके से, मान्य बिना: जैसे, अगर मैं इनपुट '\\ .. \\ .. \\ .. \\ foo' मैं बाहर निकल सकते हैं वेब रूट की। –
यह केवल विकास उद्देश्यों के लिए है, जब यह काम करेगा, मैं यह सुनिश्चित करने के लिए सभी शर्तों को जोड़ दूंगा कि कुछ भी गलत तरीके से नहीं निकलता है। लेकिन आपका शुक्रिया ! – PhoenixNoor
क्रिस्टल रिपोर्ट शैतान का एक प्राणी है। इससे दूर रहें :) – morgar