Bonjour

Je suis entrain de travaillé sur un projet en php et j'ai cette erreur .

Parse error: syntax error, unexpected end of file in C:\wamp\www\GsbCompresse - \cValidationFicheFrais.php on line 516

Mais impossible de la corrige voici le code ```?php
unset($_SESSION['idValidation']);
unset($_SESSION['moisValidation']);
unset($_SESSION['etatFiche']);

        die();

    }

        $req = obtenirReqMoisFicheFrais($_SESSION['idValidation']);
        $idJeuMois = connecterServeurBD()->query($req, $idConnexion);
        $lgMois = mysql_fetch_assoc($idJeuMois);

        if (!empty($lgMois)){

?>
<p style="font-weight:bold;font-size:19px;"><?php echo $_SESSION['nomValidation']; ?> - <?php echo $_SESSION['prenomValidation']; ?> </p>
<form method="post" action="cValidationFicheFrais.php">
<p style="color:red;font-weight:bold;">Cliquez sur le bouton ci-dessous pour retourner à la selection du visiteur</p>
<input type="submit" value="Annuler" name="effacer">
</form>
<hr />
<h3>Choisissez maintenant le mois pour </h3>
<form action="cValidationFicheFrais.php" method="post">

                    <input type="hidden" name="etape" value="validerConsult" />
                    <select id="mois" name="moisValidation">

<?php
// on propose tous les mois pour lesquels le visiteur a une fiche de frais

                            while ( is_array($lgMois) ) {
                                $mois = $lgMois["mois"];
                                $noMois = intval(substr($mois, 4, 2));
                                $annee = intval(substr($mois, 0, 4));

?>
<option value="<?php echo $mois; ?>"><?php echo obtenirLibelleMois($noMois) . " " . $annee; ?></option>
<?php
$lgMois = mysql_fetch_assoc($idJeuMois);
}
mysql_free_result($idJeuMois);
?>
</select>
<button id="start">Lancer</button>

                </form>
</div>

<?php
}

        else{
              // affectation du mois courant pour la saisie des fiches de frais

            $mois = sprintf("%04d%02d", date("Y"), date("m"));

             // vérification de l'existence de la fiche de frais pour ce mois courant

            $existeFicheFrais = existeFicheFrais($idConnexion, $mois, $_SESSION['idValidation']);

            // si elle n'existe pas, on la crée avec les élets frais forfaitisés à 0

            if ( !$existeFicheFrais ) {
              ajouterFicheFrais($idConnexion, $mois, $_SESSION['idValidation']);
            }

?>

            <script>

                alert('Aucune fiche de frais pour cette personne trouvée , celle du mois en cours viens d\'être créee ... Redirection...');
                document.location.href = 'cValidationFicheFrais.php';
                </script>
                <noscript><a href="cValidationFicheFrais.php">Retour Fiche de Frais</a></noscript>

<? }

    }

/ ------- SI ID VISTEUR N'A PAS ETE SAISI ------- /

    else {

        if (!isset ($_SESSION['idValidation'])) {?>

            <h3>Choisissez le visiteur concerné:</h3>
            <form action="cValidationFicheFrais.php" method="post">
                <input type="hidden" name="nom" value="validerConsult" />
                <select id="list" name="idValidation">

<?php

                    for ($i = 0; $i <= $compteTableau -1 ; $i++) { 

?>

                        <option id="<?php echo $i ; ?>" value="<?php echo $id[$i];?>" ><?php echo $nom[$i]. " - " .$prenom[$i];?></option>

<?php }
?>

                </select>
                <button id="start">Lancer</button>
            </form>

<?php }

    }       

?>

3 réponses


C'est sans doute un problème de parenthèse ou d'accolade manquante ou en trop.
la ligne 516 est la dernière ligne du fichier je suppose ?
il te faut un éditeur (ou ide) que te fasse le rapprochement de accolades pour t'y retrouver et aussi une bonne indentation.
bon courage.

PS: regarde aussi les point-virgules !!!

Moi je vois que les boucles ne sont pas fermées déjà...

Salut je suis d'accord avec @Khalysto, il manque des accolades à la fin de tes boucles et si tu pouvais mettre le numéro de la ligne par rapport à ton code ça aiderait, mais je pense aussi que cela doit être une erreur de point-virgule ou parenthèse ou accolade etc....