ช่วยหน่อยครับ ติดปัญหาเกี่ยวกับการเปิด pdf บน serv จริงครับ (ERROR 500 )
คือพอนำขึ้นมูลต่าง ขึ้น server จริง ในหน้าที่ต้องเปิดเป็น pdf มันจะขึ้น HTTP ERROR 500 ซึ่งตอนที่ผมจำลองใน server จำลอง ไม่ขึ้นปัญหานี้ขึ้นมา ผมต้องเเก้ไขอย่างไรครับ
code หน้า pdf ครับ
Code (PHP)
<?php
ob_start();
session_start();
require_once('../../mpdf/mpdf.php');
?>
<meta charset="UTF-8">
<?php
require_once('../../connect.php');
$query = "SELECT * FROM customer order by cus_id asc";
$result = mysqli_query($con, $query);
?>
<?php
$sql_emp = "SELECT * FROM employee WHERE emp_id='" . $_SESSION['emp_id'] . "'";
$result_emp = mysqli_query($con, $sql_emp);
$row_emp = mysqli_fetch_array($result_emp);
?>
<br>
<div align="right"><?php echo date("d-m-Y H:i:s"); ?> : <?php echo $row_emp['emp_name']; ?> <?php echo $row_emp['emp_surname']; ?> </div>
<h3 align="center">รายงานชื่อลูกค้า</h3>
<table width="1000" border="1" cellpadding="0" cellspacing="0" align="center">
<thead>
<tr>
<th style="text-align: center">ลำดับที่</th>
<th style="text-align: center">ชื่อ-นามสกุล</th>
<th style="text-align: center">อีเมล</th>
<th style="text-align: center">เบอร์โทรศัพท์</th>
<th style="text-align: center">บ้านเลขที่</th>
<th style="text-align: center">ตำบล</th>
<th style="text-align: center">อำเภอ</th>
<th style="text-align: center">จังหวัด</th>
<th style="text-align: center">รหัสไปรษณีย์</th>
</tr>
</thead>
<?php while ($row = mysqli_fetch_array($result)) {
?>
<tr>
<td align="center"><?php echo $i += 1; ?> </td>
<td width="250"><?php echo $row['cus_perfix']; ?> <?php echo $row['cus_name']; ?> <?php echo $row['cus_surname']; ?></td>
<td><?php echo $row['cus_email']; ?></td>
<td align="center"><?php echo $row['cus_number']; ?></td>
<td align="center"><?php echo $row['cus_address']; ?></td>
<td align="center"><?php echo $row['cus_district']; ?></td>
<td align="center"><?php echo $row['cus_prefecture']; ?></td>
<td align="center"><?php echo $row['cus_province']; ?></td>
<td align="center"><?php echo $row['cus_zip_code']; ?></td>
</tr>
<?php
}
?>
</table>
<?php mysqli_close($con); ?>
<?php
$html = ob_get_contents();
ob_end_clean();
$pdf = new mPDF('th', 'A4-L', '', '', 0, 0, 0, 0, 0, 0);
$pdf->SetAutoFont();
$pdf->SetdisplayMode('fullpage');
$pdf->WriteHTML($html);
$pdf->SetY(-15);
$pdf->AliasNbPages('{page}');
$pdf->Cell(0,10,'Page '.$pdf->PageNo()." / {page}",0,0,'R');
$pdf->AliasNbPages('{page}');
$pdf->Output('report_customer.pdf', 'I');
?>
Tag : PHP, HTML5, JavaScript, Ajax, jQuery
Date :
2019-04-19 08:58:04
By :
worapong39
View :
3316
Reply :
17
น่าจะเป็นที่การเชื่อมต่อฐานข้อมูลครับ
require_once('../../connect.php');
Date :
2019-04-19 10:10:06
By :
{Cyberman}
ลอง debug ดูก่อนครับ
Code (PHP)
echo $html;
// $pdf = new mPDF('th', 'A4-L', '', '', 0, 0, 0, 0, 0, 0);
// $pdf->SetAutoFont();
// $pdf->SetdisplayMode('fullpage');
// $pdf->WriteHTML($html);
// $pdf->SetY(-15);
// $pdf->AliasNbPages('{page}');
// $pdf->Cell(0,10,'Page '.$pdf->PageNo()." / {page}",0,0,'R');
// $pdf->AliasNbPages('{page}');
// $pdf->Output('report_customer.pdf', 'I');
ดูว่า html ได้อะไรออกมา
Date :
2019-04-19 11:35:33
By :
Jatmentz
บังคับให้แสดงข้อความ error ออกมาครับ
Code (PHP)
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
ประวัติการแก้ไข 2019-04-19 11:58:51
Date :
2019-04-19 11:57:36
By :
{Cyberman}
ตรวจสอบ path ใช้งาน ดูหน่อย ไว้ที่ต้นไฟล์เลย
Code (PHP)
if( !file_exists( '../../mpdf/mpdf.php'){
die ('not found ../../mpdf/mpdf.php<br>and this current file path is '. __FILE__);
}
__FILE__ จะแสดง ชื่อ ไฟล์ และ path ที่กำลังทำงานอยู่ ก็อ้างอิงให้ถูกที่ถูกทาง
มัน include ไม่ได้ หาไฟล์ pdf ไม่เจอ เลยไม่ทำงาน
Date :
2019-04-19 12:54:58
By :
Chaidhanan
รันหน้า pdf เปล่าๆ ออกมั้ยคับ
บางทีเป็นที่เวอร์ชั่น php กับ mpdf
Date :
2019-04-19 13:37:30
By :
Pong Thep
คหสต.
ลองวิธีธรรมดา ๆ ดูหรือยังครับ
การเรียกใช้ class อาจทำให้เกิดปัญหา
มันอาจจะ part mPDF เข้ามาไม่ได้
วิธีเช็คในแบบของผมก็จะเป็น
เอาลิงก์ที่ part มาใส่ไว้ใน href
<a href="../../mpdf/mpdf.php">ดูพาส</a>
เวลาทำก็เอาเมาส์ชี้ไว้ที่ลิงก์เฉย ๆ
แล้วก็สังเกตตรงมุมซ้ายล่างของ browser
ว่าลิงก์ที่เราชี้อยู่มันดึงถูกไฟล์หรือป่าว
หรือถ้ามันสุดจะทนจริงๆ ก็เอามาตั้งแต่โครตเง้ามันเลยครับ ตั้งแต่ https://www.aa......
ถ้าเอามาใส่แล้วใช้ได้แสดงว่าเป็นที่การ part แต่ถ้าทำขนาดนี้แล้วยังไม่ได้
ก็ต้องอยู่ที่การเรียกใช้ class หรือ fuction ของเราแล้วแหละครับ
Date :
2019-04-19 14:36:37
By :
nobetaking
แสดงว่า path ถูกต้องนะครับ แต่ ก็คงเป็น โค๊ด ภายในนั่นแหล่ะครับ
ตาม คห คุณ 1234 โค๊ดเก่าไปหรือเปล่า
และการแสดง error มันควรจะมีปันทัด และ ชื่อไฟล์ ที่ error
ถ้า server เป็น iis ให้ เปิด iis เลือก virtual host ที่ต้องการทำงาน เปิด PHP ดู error
ถ้าเป็น apache หาไฟล์ PHPError.log ให้เจอ ถ้าไม่รู้อยู่ไหน สร้าง log file ขึ้นมาเอง
Code (PHP)
ini_set('log_errors', 1);
ini_set('error_log', 'assets/tmp/PHP_errors.log');
assets/tmp/PHP_errors.log เป็นpath file ที่สามารถ เขียนได้ เหมือน download
เวลาเกิด error จะได้ไปอ่านได้ แบบไม่ต้อง ง้อ คนดูแล host
Date :
2019-04-19 15:07:35
By :
Chaidhanan
Load balance : Server 02