使用ezpdf通过php将数据从mysql导出到pdf时出现问题。问题是当执行文件时,它始终表示未定义的变量$ sesen_uk。但是当我改变手动喜欢生产的条件时,没有问题。
<?php
require 'config.php';
require 'class.ezpdf.php';
$sesen_uk = $_SESSION['unitkerja'];
$sql = mysqli_query($conn, "SELECT * FROM arsip WHERE lokasi = '$sesen_uk' ");
$i = 1;
if (mysqli_num_rows($sql) > 0) // Menampilkan data apabila ada datanya
{
while($tampil = mysqli_fetch_array($sql))
{
$data[$i] = array ( 'No. Urut' => $i,
'No. Surat' => $tampil['no_surat'],
'Uraian' => $tampil['uraian'],
'Lokasi' => $tampil['lokasi'],
);
$i++;
}
$pdf = new Cezpdf('A4','portrait');
$pdf->ezSetCmMargins(1, 3, 3, 3);
$pdf->addJpegFromFile('images/logo.jpg',45,758,40);
$pdf->ezText('Monthly Report', 17, array('justification' => 'center'));
$pdf->ezSetDy(-10);
$pdf->ezSetDy(-10);
$pdf->line(31, 755, 565, 755);
$pdf->ezTable($data, '', '', '');
$pdf->ezSetDy(-50);
$pdf->ezStartPageNumbers(564, 20, 8);
$pdf->ezStream();
}
else
{
echo '<script>alert("No data");location.replace("report.php")</script>';
}
?>
任何帮助都会很棒,谢谢。
答案 0 :(得分:3)
您的代码不包含session_start();
,因此会话从未启动过。
需要使用会话驻留在所有文件中。
最好首先检查它是否设置为空。
即:if(isset($_SESSION['unitkerja'])){...} else{...}
或:
if(isset($_SESSION['unitkerja']) && !empty($_SESSION['unitkerja'])){...}
参考文献:
另外,您可以使用SQL注入。使用准备好的声明。
参考文献: