Erreur: parse error unexpected $end

Signaler
Messages postés
58
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
7 janvier 2011
-
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
-
Bonjour
Parse error: syntax error, unexpected $end in

Voila l'erreur que j'ai en executant ma page licence.php , qui inclut le fichier function_licence.php.
L'erreur est la derniere ligne de function_licence.php "?>" et je ne comprend pas trop pourquoi , il n'a pas l'air d'avoir des prob d'{} ou () donc je fait appel à vous

voici les derniere ligne de ce fameux fichier posant problème:

/////////////////////////////////////////////////////////////////////////////////////////////////////////
function ad_licence_form() {
 if (isset($_GET['id_log']) && isset($_GET['id_usr']) && isset($_GET['num_licence']) && isset($_GET['d_achat']) ) {
 // Si les champs du formulaire on été remplis
  
  // Insertion des données transmises dans la base
  $id_log = $_GET['id_log'];
  $id_usr = $_GET['id_usr'];
  $num_licence = $_GET['num_licence'];
  $date_achat = $_GET['d_achat'];
  $requete = "INSERT INTO licence (id_licence , num_licence, d_achat_licence, id_log, id_usr) VALUES ('' , ''.$num_licence.'' , '' .$date_achat. '' , '' .$id_log. '' , '' .$id_usr. '')";
  mysl_querry ( $requete );
  echo '<script language="Javascript">alert("La licence à été ajoutée avec succé.");</script>';
  header ('location: licence.php');
 }
 else {
 echo '<script language="javascript">alert("Veuillez remplir tous les champs")</script>;';
 header('location: javascript:history.go(-1)');
 }
}
?>  // c'est sur cette ligne q'il y a une erreur
/////////////////////////////////////////////////////////////////////////////////////////////////////////

Merci poiur votre aide

22 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Moi j'ai pas d'erreur...

Petit détail,
else {
 echo '<script language="javascript">alert("Veuillez remplir tous les champs")</script>;';
Le ; doit être avant </script>, pas après.

Tu utilises une variable $end? Dans quel fichier?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

Heu... je ne sais pas si ca viens de la, mais dans ton fichier, tu fermes ta balise php, mais je ne vois pas ou tu l'ouvre... est tu sur de l'avoir ouverte ?

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
-----------------
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
Salut,

  echo '<script language="Javascript">alert("La licence à été ajoutée avec succé.");</script>';
  header ('location: licence.php');

faut mettre un header juste AVANT tout envoi de texte....

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
58
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
7 janvier 2011

merci pour vos reponse rapide

whitedwarf:
oui j'ouvre bien par <? au debut de mon fichier , mais il n'est pas present car j'ai copier que la derniere fonction!

coucou747:
je comprend pas trop ce que tu me dit???

coockiesch:
bien vu j'avais po trop vu l'erreur sur le javascript, merci

Si non le prob est tjrs present

merci encore
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
Salut,

 header('location: javascript:history.go(-1)');
 
lol
du javascript dans un header, on aura tout vu...

faut mettre :

echo '<script type="text/javascript">
window.history.go(-1);</script>';

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
whitedwarf >> Si le php n'avait pas été ouvert, on aurait pas eu l'erreur

Ce que dit coucou747 c'est que la fonction header ne soit pas être précédée par du texte envoyé au navigateur ( html, javascript, echo, ... ) car sinon elle ne fonctionnera pas et affichera un zouli message d'erreur... Ton header est donc à mettre avant tout code javascript...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
Salut,

c'est très simple, une requette http, c'est comme un html, ça a un header et un body, et le header est toujours avant le body... donc, si tu fais echo, tu envois le header et un morceau du body, ce qui fait que tu ne peux plus appeler la fonction header...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Lol, coucou747, il me semble qu'à chaque post on voit une erreur de plus, :D

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
salut

echo '<script language="javascript">
alert("Veuillez remplir tous les champs") ;
</script>';

je pense qu'il manque un ; après alert
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
Salut,

pour le moment, on s'en fout de son erreur javascript...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Rien n'empêche de corriger JS, même si sidf est en retard puisque j'ai déjà signalé ce ; ;)

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
58
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
7 janvier 2011

meme quand je vire la ligne avec le header sa me fait tjrs la meme erreur
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

Tu devrais mettre le code présent avant pour que l'on puisse plus voir ce qui se passe

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
-----------------
Messages postés
58
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
7 janvier 2011

bonsoir

la je suis sur un autre pc sur lequel je peut tester (avec un easyphp)

et la sa me donne

Parse error: parse error in c:\program files\easyphp1-8\www\www\licence_function.php on line 117

je vous colle la partie du code qui pose problème la fin de ma page ; sachant qu'avant sa y'a d'autre fonction et j'ai deja ouvert par  <?

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ad_licence_form() {
    $requete_log = 'SELECT nom_log , id_log FROM logiciel';
    $requete_usr = 'SELECT pseudo_usr , id_usr FROM usr';
   
    //formulaire
    ?>
    <table class=tableau_form>
    <tr>
    <form methode="GET" action="licence.php">
   
    <td class=formulaire>Logiciel :</td>
    <td class=formulaire><select name="nom_log" >
        <option value="">Logiciel</option>
            <?
            while($data = mysql_fetch_assoc($resultat_log)) {
                // on affiche les informations de l'enregistrement en cours
                echo '<option value='.$data['id_log'].'>'.$data['nom_log'].'';    
                echo '</option>'.'\n';    
            }
            ?>
        </select>
    </td>
    </tr><tr>
    <td class=formulaire>Utilisateur :</td>
    <td class=formulaire><select name="pseudo_usr" >
        <option value="">Utilisateur</option>
            <?
            while($data = mysql_fetch_assoc($resultat_usr)) {
                // on affiche les informations de l'enregistrement en cours
                echo '<option value='.$data['id_usr'].'>'.$data['pseudo_usr'].'';    
                echo '</option>'.'\n';    
            }
            ?>
        </select>
    </td>
    </tr><tr>
    <td class=formulaire>Numero licence :</td>
    <td class=formulaire></td>
    </tr><tr>
    <td class=formulaire>Date d'achat :</td>
    <td class=formulaire></td>
    </form>
    </tr>
    <?
    exit;
}

//Fonction traiter l'ajout d'une licence
function ad_licence() {
    if (isset($_GET['id_log']) && isset($_GET['id_usr']) && isset($_GET['num_licence']) && isset($_GET['d_achat']) ) {
    // Si les champs du formulaire on été remplis
       
        // Insertion des données transmises dans la base
        $id_log = $_GET['id_log'];
        $id_usr = $_GET['id_usr'];
        $num_licence = $_GET['num_licence'];
        $date_achat = $_GET['d_achat'];
        $requete = "INSERT INTO licence (id_licence , num_licence, d_achat_licence, id_log, id_usr) VALUES ('' , ''.$num_licence.'' , '' .$date_achat. '' , '' .$id_log. '' , '' .$id_usr. '')";
        mysql_query ( $requete ) or die ("Insertion non effectuée !");
        echo '<script language="Javascript">alert("La licence à été ajoutée avec succé.");</script>';
        header ('location: licence.php');
    }
    else {
    echo '<script language="javascript">alert("Veuillez remplir tous les champs");</script>';
    //echo '<script language="javascript">javascript:history.go(-1);</script>';
    //header('location: javascript:history.go(-1)');
    }
}
?>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Encore merci
Messages postés
58
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
7 janvier 2011

oups, dsl pour les ///// sa fou le bordel

j'ajoute que la ligne 117 c'est la derniere :"?>"

// on peu pas editer les message sur le forum?
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Moi je serais toi, je prendrai un prog avec colorisateur syntaxique ...
Sinon tu vas te faire chier royal !

D'après mon éditeur (Zend pour pas le citer :p), y'a aucun problème à ce niveau du code.
Donc c'est plus haut que ca merde.
Messages postés
58
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
7 janvier 2011

j'utilise notepad++ mais je vois pas mon erreur
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Tu pourrais nous coller le code qui vient avant?
Voire même, encore mieux, nous mettre tout le fichier à dispo (pas ici, s'il est trop long, mais tu copie colle tout le code dans un .txt et tu le met sur ton serveur) :)

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
58
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
7 janvier 2011

voici donc les deux fichiers:

licence.php
http://www.twistedproduction.net/tmp/licence.txt

licence_function.php (appeler par licence)
http://www.twistedproduction.net/tmp/licence_function.txt

Merci pour votre aide
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
   salut
on est d'accord que là
<form methode= "GET" action="licence.php"> --> method

et là je ne comprends pas la derniere "
echo '<option value='.$data['id_log'].'>'.$data['nom_log']  .'' ;    
echo '</option>'.'\n';  

echo '<option value ='.$data['id_log'].'>'.$data['nom_log'].'</option>'; 

idem pour le select suivant