[英]Generating Blank Page FPDF
這是我的 billingpdf.php,如果我點擊提交按鈕,它只會繼續生成一個空白頁面。 當我嘗試刪除並在 billingpdf.php 上放置一些基本代碼時,它已經創建了 pdf,它顯示了我輸入的消息,但是當我嘗試使用提交按鈕時,它似乎不再生成 pdf。 誰是 FPDF 的專家?
<?php
session_start();
if (!isset($_SESSION["uemail"])){
header('Location: login.php'); }
$uid = $_SESSION['UserID'];
?>
<?php
if(isset($_POST['submit']))
{
require("fpdf.php");
require ("../util/dbConnection.php");
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 10);
$pdf->Cell(18, 10, '', 0);
$pdf->Cell(150, 10, 'Testing"', 0);
$pdf->SetFont('Arial', '', 9);
$pdf->Cell(50, 10, 'Date: '.date('d-m-Y').'', 0);
$pdf->Ln(15);
$pdf->SetFont('Arial', 'B', 11);
$pdf->Cell(70, 8, '', 0);
$pdf->Cell(100, 8, 'Billing Assessment', 0);
$pdf->Ln(23);
$pdf->SetFont('Arial', 'B', 8);
$pdf->Cell(20, 8, 'Expense ID', 0);
$pdf->Cell(30, 8, 'Request Booking', 0);
$pdf->Cell(20, 8, 'Request Date', 0);
$pdf->Cell(20, 8, 'Due date', 0);
$pdf->Cell(25, 8, 'Amount', 0);
$pdf->Ln(8);
$pdf->SetFont('Arial', '', 8);
$sql = "SELECT ExpenseID, reqbookID, RequestBooking, requestDate, amount,
DATE_ADD(requestDate,INTERVAL 30 DAY) as duedate
FROM tblbilling NATURAL JOIN tblbookreq
WHERE UserID = $uid ORDER BY requestDate";
$result = $conn->query($sql);
while ($row = $result->fetch_assoc()){
$pdf->Cell(20, 8, $row['ExpenseID"'], 0);
$pdf->Cell(30, 8, $row['RequestBooking'], 0);
$pdf->Cell(20, 8, $row['requestDate'], 0);
$pdf->Cell(20, 8, $row['duedate'], 0);
$pdf->Cell(25, 8, $row['amount'], 0);
}
$pdf->Output();
}
?>
這是我的 billing.php
<h2>Services and Charges</h2>
<div class="content" style="border:1px dotted black; padding:1%; border-radius:1em; ">
<select style="margin-bottom:1%;">
<option> --- </option>
<option>Weekly</option>
<option>Monthly</option>
</select>
<select style="margin-bottom:1%;">
<option> --- </option>
<option>Laundry</option>
<option>Cafe</option>
<option>Maintenance</option>
</select>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for Expenses...">
<table id="myTable" cellpadding=10>
<thead>
<tr>
<th>Expense ID</th>
<th>Expense Name</th>
<th>Date Requested</th>
<th>Date Due</th>
<th>Amount</th>
</tr>
</thead>
<input type="submit" value="Print"style="float:right;" ></input>
<tbody>
</form>
<?php
include "../util/dbConnection.php";
$sql = "SELECT ExpenseID, reqbookID, RequestBooking, requestDate, amount, DATE_ADD(requestDate,INTERVAL 30 DAY) as duedate FROM tblbilling NATURAL JOIN tblbookreq WHERE UserID = $uid ORDER BY requestDate";
$result = $conn->query($sql);
while ($row = $result->fetch_assoc()){
echo "<tr>
<td>".$row["ExpenseID"]."</td>
<td>".$row["RequestBooking"]."</td>
<td>".$row["requestDate"]."</td>
<td>".$row["duedate"]."</td>
<td>".$row["amount"]."</td>
</tr>";
}
?>
</tbody>
</table>
</div>
試試這個,我在使用 FPDF 庫生成動態 Pdf 時遇到了同樣的問題,但這已通過 $pdf->SetAutoPageBreak(false); 解決了;
$pdf->AddPage('L','A4');
$pdf->SetFont('Arial','',8);
$pdf->SetHeight(4);
$pdf->SetAutoPageBreak(false);
我有過幾次相同的經歷,我通過以下方式解決了它:
查看運行 PHP 腳本的文件夾中的error_log文件。 通常,在它的末尾有一條錯誤消息,它與您收到錯誤的腳本有關。
就我而言,我收到了這條消息:
[2019 年 11 月 29 日 13:33:44 UTC] PHP 致命錯誤:未捕獲異常:FPDF 錯誤:一些數據已經輸出,無法發送 PDF 文件(輸出開始於 /home/xxxxxx/public_html/sla/connectdb .php:19) 在 /home/xxxxxx/public_html/sla/fpdf/fpdf.php:271
它告訴我的是關於在 FPDF 生成報告的任何部分之前發送 HTML 語句的經典語句。
它還說它開始於connectdb.php
腳本的第 19 行。 connectdb.php 是一個小腳本,由主腳本中的“include”語句引入,以“<?php”開頭並以“?>”。
但是,除此之外還有兩三個回車(CR),這導致在執行主腳本時將空行輸出為 HTML,因此顯示完全空白的頁面。 我刪除了所有 CR,並且報告神奇地起作用了! 只需確保腳本中沒有可能導致輸出空行的地方。
順便說一句,錯誤日志對於確定錯誤 500 消息的原因也非常有用,這些消息沒有提供其他信息來幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.