2017-02-01 2 views
0

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; 
} 
+2

** ATTENTION ** Vous semblez être ouvert à l'injection SQL en passant des données '$ _POST' brutes à votre requête sans aucun assainissement. –

+0

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? –

+0

injection de sql? mais je ne pense pas qu'un pirate puisse y entrer parce que j'ai donné des validarions appropriées. –

Répondre

-1

J'ai trouvé la solution. le problème était que je mettais un titre et un favicon avant l'exécution du script PHP pour générer le pdf. donc je pense qu'il attrapait comme en-têtes. Donc j'ai enlevé que & le problème a été résolu.

+1

Donc, fondamentalement [ce commentaire] (http://stackoverflow.com/questions/41979511/pdf-not-opening-after-generation-of-dompdf#comment71151183_41979511) –