Dag Harry,
Als je al naar de code highlight van je eigen code hierboven kijk zie je al wat er fout gaat (in de regel $riderNFtxt = ... gaat het niet goed met de quootjes).
Ik weet niet welk editor je nu gebruikt, maar als je bijvoorbeeld Notepad++ met syntax highlighting gebruikt, zie je dit meteen al in je editor.
Link gekopieerd
Ik gebruik Rapid PHP en toch gaat het fout. Een stukje uitgeligt waar ik nog mee zit:
<?php
$imageFile = $_SERVER['DOCUMENT_ROOT'];//
$imageFile .= "event\images\Flags\" ;
$imageFile .=$Row['competing_for_country'];
$riderNFtxt ='<img border="0" src=".$imageFile.' height="20"> <font size="+4"><b>'.$country_name.'</b></font> ('.$Row['competing_for_country'].")<br />";
?>
wat is er nu fout in regel 3 waardoor regel 4 en volgend niet mee doet??
Link gekopieerd
Moeten de schuine strepen in regel 3 niet de andere kant op wijzen?
En in regel 6 ontbreekt een " om de src=" mee af te sluiten.
Het lijkt wel therapie.
Link gekopieerd
En font-tags zijn inmiddels behoorlijk bejaard. Gebruik gewoon CSS om alles te stylen.
Link gekopieerd
- Ariën - op 23/07/2017 20:28:31
En font-tags zijn inmiddels behoorlijk bejaard. Gebruik gewoon CSS om alles te stylen.
Ik ben niet zeker of TCPDF wel goed werkt met CSS en dan moet ik weer een kunstje leren. Ben op dit moment allang blij dat mij dit lukt met hulp
Link gekopieerd
Daar heb je gelijk in...
Of heeft TCPDF zelf een method voor font-sizes?
Link gekopieerd
Ik heb de eerste template werkend. Is wel een ander report geworden, is iets eenvoudiger.
<?php
// Vul hier een rapport specifiek clausule in.
// In dit rapport gaat het om welke combinaties hebben een onderkomen in de caravan nodig
$sqlCombiWHERE = " WHERE 2010Combination.horseFEIid = '".$_GET['horseFEIid']."'";
$report = $_GET['report']; // report name/template
$horseID = $_GET['horseFEIid']; // Horse FEI passport number/id
$sqlCombiBASIC = "
SELECT person.*, horse.*, 2010Combination.*, country.* , country.*
FROM FEIPerson AS person
JOIN 2010Combination ON person.fei_id = 2010Combination.personFEIid
JOIN FEIHorse horse ON horse.fei_id = 2010Combination.horseFEIid
JOIN country ON country.ISO_A3 = person.competing_for_country ";
$sqlCombiORDER = "
ORDER BY person.competing_for_country, 2010Combination.compNumber ASC "; // not always neede, can do no harm
$sqlCombination = $sqlCombiBASIC . $sqlCombiWHERE . $sqlCombiORDER;
if(!$Result = mysqli_query($dblink, $sqlCombination)) {
$html = "There is een error opening table for ". $report. "; ".mysqli_error($dblink)."<br />";
} else {
$numberCombination = mysqli_affected_rows($dblink); // must be at least 1
// ---------------------------------------------------------
// Template layout starts here
$pdf->setJPEGQuality(75); // set JPEG quality
$pdf->SetFont('helvetica', '', 12);// set font
// set some text to print
if($numberCombination < 0)
{ // report some error
}
elseif($numberCombination > 0)
{
$pdf->AddPage();// add a page
$Row = mysqli_fetch_assoc($Result);
$countryFlag = 'images/Flags/'.$Row['e_country'].'.png';
// $pdf->Cell(0,23, '','N',1,'L');
$html = '<table border="1" width="100%" cellpadding="10"><tr><td>';
$html .= '<table border="0" width="100%">
<tr>
<td nowrap="nowrap">';
// This section changed on August 5th 2014
if($Row['is_waitingList'] == 'Yes' ) {
$html .= 'On WAITING-list';
} else {
if($Row['is_nc'] == 'Yes' ) {
$html .= 'Horse is NON competing';
}
else {
$html .= 'Combination is competing' ;
}
}
// End changed section
$html .= ' for:<p STYLE="font-size: 18pt;">'.$Row['compNumber'].'</p> </td>
<td>'.$Row['competing_for_country'].' ( '.$RowC['e_country'].')</td>
<td><img src="'.$countryFlag.'" border="0" height="80" /><br /></td>
</tr>
</table>';
// Get the Horse data
$DOBE = explode('-',$Row['date_birth']);
$date_birth = $DOBE[2]."-".$DOBE[1]."-".$DOBE[0];
$age = GetAge($Row['date_birth'], $Row['date_death']);
if($Row['gender'] == "Female") { $gender = "Mare";}
elseif($Row['gender'] == "Male") {
if($Row['is_castrated'] == "yes") { $gender = "Gelding";}
elseif($Row['is_castrated'] == "no") {$gender = "Stalion";}
else {$gender = "Unknown";}
} else { $gender = "Unknown";}
$html .= '<table border="0" width="100%">
<tr><td widtd="20%">Horse name</td><td>'.$Row['complete_name'].'</td></tr>
<tr><td>FEI id</td><td>'.$Row['fei_id'].'</td></tr>
<tr><td>Gender</td><td>'.$gender.'</td></tr>
<tr><td>Color</td><td>'.$Row['color'].'</td></tr>
<tr><td>Age</td><td>'.$Row['date_birth'].' / '.$age.'</td></tr>
<tr><td>Owner</td><td>'.$Row['owner_name'].' ( '.$Row['owner_nationality'].' )</td></tr>
<tr><td></td><td></td></tr>
</table>';
$DOBE = explode('-',$Row['date_birth']);
$date_birth_p = $DOBE[2]."-".$DOBE[1]."-".$DOBE[0];
$age = GetAge($Row['date_birth_p'], $Row['date_death']);
if($Row['gender_p'] == "Male") { $name="Mr. ";} else { $name="Ms. ";}
$name .= $Row['first_name'].' '.ucfirst(strtolower($Row['family_name']));
$html .= '<table border="0" width="100%">
<tr><td widtd="20%">Rider name</td><td>'.$name.'</td></tr>
<tr><td>FEI id</td><td>'.$Row['personFEIid'].'</td></tr>
<tr><td>Date of Birth</td><td>'.$Row['date_birth_p'].' ( '.$age.' )</td></tr>
<tr><td>Mobile</td><td>+'.$Row['e_private_mobile'].' </td></tr>
<tr><td>Private E-mail</td><td>'.$Row['e_private_email'].' </td></tr>
<tr><td></td><td></td></tr>
</table>';
$html .= '</td></tr><tr><td>';
$html .= '<table border="0" width="100%">
<tr><td widtd="20%">Bedding</td><td>'.$Row['horseBedding'].'</td></tr>
<tr><td>Arrival date</td><td>'.$Row['arivalPeriod'].'</td></tr>
<tr><td>Departure date</td><td>'.$Row['departurePeriod'].'</td></tr>
<tr><td>Qualification</td><td>'.$Row['combinationNominate'].'</td></tr>
<tr><td>Payment by</td><td>'.$Row['paymentType'].'</td></tr>
<tr><td>Rider stays in HorseBox</td><td>'.$Row['stayHorseBox'].'</td></tr>';
$missingBox = '<br /><br />____________________';
if($Row['stayHorseBox'] == "No") {
$html .='<tr><td>Requires bed in B-Boekelo</td><td>'.$Row['appartmentBB'].'</td></tr>'; }
$html .= '<tr><td></td><td></td></tr>
<tr><td>Groom</td><td>';
if($Row['nameGroom'] != "")
{ $html .= $Row['nameGroom']; }
else{ $html .= $missingBox;}
$html .= ' ('.$Row['genderGroom'].')</td></tr>
<tr><td>Cell Groom</td><td>+';
if($Row['cellGroom'] != "")
{ $html .= $Row['cellGroom']; }
else{ $html .= $missingBox;}
$html .= '</td></tr>
<tr><td>Accomodation in caravan</td><td>'.$Row['accomGroom'].'</td></tr>
<tr><td></td><td></td></tr>
</table>';
$html .= '<table border="0" width="85%">
<tr><td><b>Comments</b><br /><br /><br /><br /></td></tr><tr><td>'.$Row['comment_c'].'</td></tr>
</table>';
$html .= '</td></tr></table>';
$pdf->writeHTML($html, true, false, true, false, ' ');
}
$report .= $horseID;
}
?>
Ik weet alleen niet of mijn code een M<YSQL-injectie mogelijk maakt en of daar nog wat aan moet doen??
Harry
Link gekopieerd
Ja, SQL-injection is mogelijk, zie regel 4.
Link gekopieerd
PHP Maarten op 24/07/2017 14:12:37
Ja, SQL-injection is mogelijk, zie regel 4.
Hoe kan ik dit beveiligen??
Link gekopieerd
mysqli_real_escape_string()
Link gekopieerd