LS,

Regel 7 genereerd deze fout: Parse error: syntax error, unexpected 'gender' (T_STRING)
<?php
	if($numberCombination > 0) {
		for($i=0; $i<$numberCombination; $i++) {
			$Row= mysqli_fetch_assoc($Result);
			$riderNFtxt ='<img border="0" src="images/Flags/".$Row['competing_for_country'].".png" height="20">  <font size="+4"><b>'.$country_name.'</b></font> ('.$Row['competing_for_country'].')<br />

			if($Row['gender'] == "Female") $genderHorse = "(M)";
			elseif($Row['gender'] == "Male" && $Row['is_castrated'] == "yes") $genderHorse = "(G)";
			elseif($Row['gender'] == "Male" && $Row['is_castrated'] == "unknown") $genderHorse = "(?)";
			else $genderHorse = "(S)";

  			$html .= $countryName  = $Row['e_country'];
$tbl .= '   <tr>
                <td width="30">'.$Row['compNumber'].'</td>
				<td width="170">'.ucwords(strtolower($Row['first_name'])).' '.ucwords(strtolower($Row['family_name'])).'</td>
				<td width="200">'.ucwords(strtolower($Row['complete_name'])).' '.$genderHorse.'</td>
				<td width="310">'.ucwords(strtolower($Row['owner_name'])).'</td>
				<td width="">'.$riderNFtxt.'</td>
            </tr>';

				} // end for-loop

         } // end records present
?>

Het enige wat ik mij kan indenken wat deze fout veroorzaakt is $Row['gender'] maar deze waarde is aanwezig. Ziet iemand waar het dan fout kan gaan??
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.
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??
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.

En font-tags zijn inmiddels behoorlijk bejaard. Gebruik gewoon CSS om alles te stylen.
- 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

Daar heb je gelijk in...
Of heeft TCPDF zelf een method voor font-sizes?
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 .= '&nbsp; ('.$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
Ja, SQL-injection is mogelijk, zie regel 4.
PHP Maarten op 24/07/2017 14:12:37

Ja, SQL-injection is mogelijk, zie regel 4.
Hoe kan ik dit beveiligen??

mysqli_real_escape_string()

Reageren