Ceci est mon code d'impression:pdf ne pas ouvrir après génération dompdf
<?php
if ($_GET['id'] == "print")
{
include ("../config.php");
include ("../classes.php");
$result = $Adder->getPrintData($_POST['value']);
if ($result->num_rows > 0)
{
$data = "";
$html_data = "";
while ($row = $result->fetch_assoc())
{
switch ($row['birth_type_id'])
{
case 1:
$hospital_id = $row['hospital_id'];
$home_detail = "None";
$other_detail = "None";
$birth_formatted_type = "Birth at : " . $Viewer->getHospitalName($row['hospital_id']);
break;
case 2:
$hospital_id = "None";
$home_detail = $row['home_detail'];
$other_detail = "None";
$birth_formatted_type = "|| Birth at Home || <br />Home Details Are : " . $row['home_detail'];
break;
case 3:
$hospital_id = "None";
$home_detail = "None";
$other_detail = $row['other_detail'];
$birth_formatted_type = "|| Birth at Other Location || <br />Details Are : " . $row['other_detail'];
break;
default:
$hospital_id = "None";
$home_detail = "None";
$other_detail = "None";
break;
}
$data.= "<div style='width: 100%;'>
<table>
<tr>
<td style='width: 350px;'>
<u>
<h3>Baby Related Details</h3>
</u>
Registration Number: {$row['registration_number']}<br />
Birth Date: {$row['birth_date']}<br />
Birth Time: {$row['birth_time']}<br /><br />
Gender: {$Viewer->getGender($row['gender_id']) }<br />
Baby's Full Name: {$row['baby_name']}<br />
Father's Full Name: {$row['fathers_name']}<br />
Father's Aadhar ID: {$Viewer->getAadhar($row['fathers_uid']) }<br />
Mother's Full Name: {$row['mothers_name']}<br />
Mother's Aadhar ID: {$Viewer->getAadhar($row['mothers_uid']) }<br />
While Baby's Birth Parents Address: {$row['while_baby_birth_parents_address']}<br />
Parent's Permanent Address: {$row['parents_permanent_address']}<br />
</td>
<td style='width: 350px;'>
<u>
<h3>Parents Details</h3>
</u>
{$birth_formatted_type}<br />
Category: {$Viewer->getCategoryDetail($row['category_id']) }<br />
Religion: {$Viewer->getReligionDetail($row['religion']) }<br /><br />
Taluka: {$Viewer->getTalukaDetail($row['taluka_id']) }<br />
City: {$Viewer->getCityDetail($row['city_id']) }<br />
<br /><br />
Father's Education Level: {$Viewer->getEducationLevel($row['id_of_fathers_education_level']) }<br />
Mother's Education Level: {$Viewer->getEducationLevel($row['id_of_mothers_education_level']) }<br />
Father's Occupation: {$Viewer->getOccupationDetail($row['id_of_fathers_occupation']) }<br />
Mother's Occupation: {$Viewer->getOccupationDetail($row['id_of_mothers_occupation']) }
<u>
<h3><br />Other Details</h3>
</u>
Mother's Marriage Age: {$row['mothers_marriage_age']}<br />
While Baby's Birth Mother's Age: {$row['while_birth_mothers_age']}<br />
Alive Deliveries Upto Now: {$row['total_alive_deliveries_uptill_date']}<br /><br />
Birth Place: {$Viewer->getBirthPlaceOrPerson($row['id_of_birth_place']) }<br />
Birth Person: {$Viewer->getBirthPlaceOrPerson($row['id_of_birth_person']) }<br />
Mother's Delivery Type: {$Viewer->getDeliveryType($row['id_of_delivery_type']) }<br />
Child's Weight: {$row['child_weight_while_birth']} Kg<br />
Pregnancy Duration: {$row['pregnancy_duration']} Weeks
</td>
</tr>
</table>
</div>
";
}
$html_data = "<html>
<head>
<style>
*
{
font-family: 'titillium';
}
@page
{
margin: 10px;
}
body, table
{
margin: 10px;
}
</style>
</head>
<body>
<br />
<center>
<h2>
Birth Certificate Details
</h2>
</center>
" . $data . "
</body>
</html>";
require "../dompdf/dompdf_config.inc.php";
$dompdf = new DOMPDF();
$dompdf->set_paper('A4', 'landscape');
$dompdf->load_html($html_data);
$dompdf->render();
$dompdf->stream("PD444607_Date_" . $_POST['value'] . ".pdf");
}
}
Le pdf est généré avec la taille variable de fichier, mais quand j'ouvre le pdf, il affiche un message d'erreur comme
Impossible d'ouvrir le pdf
Quand je fais un echo
comme ci-dessous
echo $html_data;
Chaque donnée est visible, elle ne montre aucune erreur. J'ai débogué le code à tous les niveaux. Ce n'est que lorsque le pdf est généré qu'il ne s'ouvre pas.
Ce sont les données qui sont apportées dans la variable $result
;
public function getPrintData($value)
{
$query = "SELECT * FROM certificate_details WHERE created LIKE '%$value%' ";
$connection = $this->establish_connection();
$result = $connection->query($query);
$connection->close();
return $result;
}
** ATTENTION ** Vous semblez être ouvert à l'injection SQL en passant des données '$ _POST' brutes à votre requête sans aucun assainissement. –
Si vous avez 'header ('Content-type: application/pdf'); $ dompdf-> stream(); mourir, est-ce que le navigateur rend le PDF bien? Aussi, qu'est-ce qui se passe avec cette indentation? –
injection de sql? mais je ne pense pas qu'un pirate puisse y entrer parce que j'ai donné des validarions appropriées. –