Bonjour,
j'ai développé en local un site de gestion de boxes. Tout marche je peux créer des pdf, récuperer les infos de ma base, transmettre des infos de session de page en page et éditer des factures. Depuis que je suis hébergée en mutu sur OVH je ne récupère plus mes variables de session dans mon pdf. Pourtant elles sont bien activées dans functions.php. Je ne comprends pas. J'ai essayé de faire un if(isset($_SESSION['moisfac']))
{
echo $_SESSION['moisfac'];
}
en début de code, après le session_start() et dans ce cas-là je vois seulement apparaître sur une page blanche d'erreur, 01 qui correspond bien à ma variable de session sélectionnée, et TCPDF: can't send output, headers already sent by. Je ne comprends pas. J'ai vérifié que je n'avais pas de ligne vide en début de code, réenregistré en UTF8 (sans BOM) pour être sûre... mais ça ne change rien. Pouvez-vous m'aider?
Je vous joins mon code.
Merci,
Raph
<?php
session_start();
require_once "lib/html2pdf.php";
$hote="";
$utilisateur="";
$password="";
$bdd="";
$connexion = mysqli_connect($hote,$utilisateur,$password,$bdd);
$moisfac=$_SESSION['moisfac'];
$sql = "SELECT banque, adresse, IBAN, BIC FROM wp_rib WHERE id=1" ;
$rep = mysqli_query( $connexion, $sql ) or die('Could not look up user information; ' . mysqli_error($connexion));
$row = mysqli_fetch_row($rep);
$banque=$row['0'];
$adresse=$row['1'];
$iban=$row['2'];
$bic=$row['3'];
$sql2=" SELECT nom, nom2, adresse, code_postal, ville, telephone, mail FROM wp_proprietaire";
$rep2=mysqli_query( $connexion, $sql2 ) or die('Could not look up user information; ' . mysqli_error($connexion));
$propri = mysqli_fetch_row($rep2);
$societe=trim($propri['0']);
$nom=trim($propri['1']);
$adres=trim($propri['2']);
$cp=trim($propri['3']);
$ville=trim($propri['4']);
$tel=trim($propri['5']);
$mail=trim($propri['6']);
$choixcli= $_SESSION['choixcli'];
$libel=$_SESSION['libel'];
$sql3=" SELECT bx.nom, st.adresse, st.code_postal, st.ville,bx.montantTTC,bx.montantHT FROM wp_boxes AS bx INNER JOIN wp_sites AS st ON bx.idsite_FK=st.id INNER JOIN wp_locations as loc ON bx.id=loc.idboxes_FK INNER JOIN wp_locataires_actifs as la ON la.id=loc.idlocataire_FK WHERE la.nom_locataire='$choixcli'";
$rep3=mysqli_query( $connexion, $sql3 ) or die('Could not look up user information; ' . mysqli_error($connexion));
$box = mysqli_fetch_row($rep3);
$refbox=$box['0'];
$boxad=$box['1'];
$boxcp=$box['2'];
$boxvil=$box['3'];
$boxttc=$box['4'];
$boxht=$box['5'];
$tva=$boxttc-$boxht;
$prenom=$_SESSION['prenom'];
$entreprise=$_SESSION['entreprise'];
$adresloc=$_SESSION['adresse'];
$adresloc2=$_SESSION['adresse'];
$codep=$_SESSION['cp'];
$villeloc=$_SESSION['ville'];
$datepaie=$_SESSION['datepaie'];
$annee=$_SESSION['annee'];
ob_start();
?>
<style type="text/css">
table {
width: 100%;
color: #717375;
font-family: helvetica;
line-height: 5mm;
border-collapse: collapse;
}
h2 { margin: 0; padding: 0; }
p { margin: 5px; }
.border th {
border: 1px solid #000;
color: white;
background: #000;
padding: 5px;
font-weight: normal;
font-size: 14px;
text-align: center; }
.border td {
border: 1px solid #CFD1D2;
padding: 5px 10px;
text-align: justify;
}
.test{margin-top: 15%;}
.10p { width: 10%; } .15p { width: 15%; }
.25p { width: 25%; } .50p { width: 50%; }
.60p { width: 60%; } .65p { width: 65%; }
</style>
<page backtop="10mm" backleft="10mm" backright="10mm" backbottom="10mm" >
<page_footer>
<hr />
<p>Référence bancaire: <?php echo $banque." ".$adresse." ".$iban." ".$bic;?></p>
</page_footer>
<table style="vertical-align: top; margin-top:-15px;">
<tr>
<td class="65p">
<img src="Logo.jpg" alt="logo" width="200" height="120"/><br/>
<strong><div style="text-transform:uppercase;font-size:16px;margin-bottom:5px;text-align:justify;"><?php echo $societe; ?></div></strong>
<div style="text-align:justify;"><strong><?php echo $nom; ?></strong><br />
<strong><?php echo $adres; ?></strong><br />
<strong><?php echo $cp." ".$ville; ?></strong><br />
<img src="tel.png" alt="telephone" width="12" height="12"/><strong> <?php echo $tel; ?></strong><br />
<strong><?php echo $mail; ?></strong></div><br />
</td>
<td class="25p">
<div style="margin-top:150px;">
<strong><div style="text-transform:uppercase;font-size:16px;margin-bottom:5px;text-align:justify;"><?php echo $choixcli." ".$prenom." ".$entreprise; ?></div></strong>
<div style="text-align:justify;"><strong><?php echo $adresloc." ".$adresloc2; ?></strong><br/>
<strong><?php echo $codep." ".$villeloc; ?></strong></div>
</div>
</td>
</tr>
<!--<tr><td class="75p"></td><td class="25p"><strong></*?php echo $choixcli." ".$prenom." ".$entreprise; ?></strong><br/>
</*?php echo $adresloc." ".$adresloc2; ?><br/>
</*?php echo $codep." ".$villeloc; ?>
</td>
</tr>-->
</table>
<?php
$mois = $moisfac;
switch($mois) {
case '01': $mois = 'Janvier'; break;
case '02': $mois = 'Fevrier'; break;
case '03': $mois = 'Mars'; break;
case '04': $mois = 'Avril'; break;
case '05': $mois = 'Mai'; break;
case '06': $mois = 'Juin'; break;
case '07': $mois = 'Juillet'; break;
case '08': $mois = 'Aout'; break;
case '09': $mois = 'Septembre'; break;
case '10': $mois = 'Octobre'; break;
case '11': $mois = 'Novembre'; break;
case '12': $mois = 'Decembre'; break;
default: $mois =''; break;
}
$jour = $datepaie;
$date=substr($jour, 8);
switch($date) {
case '01 00:00:00': $date = '01'; break;
case '02 00:00:00': $date = '02'; break;
case '03 00:00:00': $date = '03'; break;
case '04 00:00:00': $date = '04'; break;
case '05 00:00:00': $date = '05'; break;
case '06 00:00:00': $date = '06'; break;
case '07 00:00:00': $date = '07'; break;
case '08 00:00:00': $date = '08'; break;
case '09 00:00:00': $date = '09'; break;
case '10 00:00:00': $date = '10'; break;
case '11 00:00:00': $date = '11'; break;
case '12 00:00:00': $date = '12'; break;
case '13 00:00:00': $date = '13'; break;
case '14 00:00:00': $date = '14'; break;
case '15 00:00:00': $date = '15'; break;
case '16 00:00:00': $date = '16'; break;
case '17 00:00:00': $date = '17'; break;
case '18 00:00:00': $date = '18'; break;
case '19 00:00:00': $date = '19'; break;
case '20 00:00:00': $date = '20'; break;
case '21 00:00:00': $date = '21'; break;
case '22 00:00:00': $date = '22'; break;
case '23 00:00:00': $date = '23'; break;
case '24 00:00:00': $date = '24'; break;
case '25 00:00:00': $date = '25'; break;
case '26 00:00:00': $date = '26'; break;
case '27 00:00:00': $date = '27'; break;
case '28 00:00:00': $date = '28'; break;
case '29 00:00:00': $date = '29'; break;
case '30 00:00:00': $date = '30'; break;
case '31 00:00:00': $date = '31'; break;
default: $date =''; break;
}
?>
<table style="margin-top: 50px;">
<tr>
<td class="50p"></td>
<td class="50p" style="text-align: right;"> Le <?php echo date("d/m/Y"); ?></td>
</tr>
</table>
<table style="margin-top: 90px;">
<tr>
<td style="width:33%;"></td>
<td><h2 style="text-align:center;">Loyer <?php echo $mois." ".$annee;?> </h2></td>
<td style="width:33%;"></td>
</tr>
</table>
<table><tr><td style="width:10%;"></td><td>
<table style="margin-top: 40px; width:100%;" class="border">
<thead>
<tr>
<th style="width:70%;text-align:justify;">Loyer du mois de: <?php echo $mois." ".$annee;?></th>
<th style="width:20%;">Montant</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Box <?php echo $refbox ?></strong><br/>
<?php echo $boxad ?><br/>
<?php echo $boxcp ." ".$boxvil ?><br/>
</td>
<td style="text-align:center;"><strong><?php echo $boxht?> €</strong></td>
</tr>
<tr>
<td><strong>TVA (20%)</strong></td>
<td style="text-align:center;"><strong> <?php echo $tva?> €</strong></td>
</tr>
<tr>
<td><strong>Montant TTC</strong></td>
<td style="text-align:center;"><strong><?php echo $boxttc?> €</strong></td>
</tr>
</tbody>
</table></td></tr></table>
<br/><br/><br/>
<p>En votre aimable règlement pour le <?php echo $date;?> du mois de <?php echo $mois?> par <?php echo $libel ?> </p>
<br/><br/><br/>
<table><tr><td style="width:20%;"></td><td style="width:33%;">
<img src="Signature.jpg" alt="signature" width="400" height="200" /></td></tr></table>
</page>
<?php
$content = ob_get_clean();
try {
$pdf = new HTML2PDF("p","A4","fr");
$pdf->pdf->SetAuthor('CAVDL');
$pdf->pdf->SetTitle('Loyer'.$mois." ".$annee.$choixcli." ".$prenom);
$pdf->pdf->SetSubject('Location de box');
$pdf->pdf->SetKeywords('HTML2PDF, Loyer, PHP');
$pdf->writeHTML($content);
$pdf->Output('Loyer'.$annee."_".$mois."_".$refbox.'.pdf', 'D');
} catch (HTML2PDF_exception $e) {
die($e);
}
?>
Partager