[RESOLU] class php5 - Pb fin de script

class php5 - Pb fin de script [RESOLU] - PHP - Programmation

Marsh Posté le 14-01-2005 à 22:45:03    

bonjour
j'ai un script d'une classe categorie en php5
et quand je veux tester ma classe... 127.0.0.1/php5/class_categorie.php
 
mon brave firefox me dit:
Parse error: syntax error, unexpected $end in C:\httpd\Apache2\htdocs\php5\class_categorie.php on line 44
 

Citation :


<?
 
require_once('class_mysql.php');
 
class Categorie
{
private $Id, $Libelle;
 
public function __construct($id, $lib)
{
 $this->Id=$id;
 $this->Libelle=$lib;
}
 
public function Ajouter(Mysql &$mysql)
{
 $query="insert into categorie values('".$this->Id."','".$this->Libelle."')";
 $mysql->executeQuery($query);
}
 
public function Delete(Mysql &$mysql)
{
 $query="delete from categorie where id_categorie='".$this->Id."'";
 $mysql->executeQuery($query);
}
 
public function Update(Mysql &$mysql)
{
 $query="update categorie SET libelle='".$this->Libelle."' where id_categorie='".$this->Id."'";
 $mysql->executeQuery($query);
}
 
public function Affiche()
{
 print <<< CAT
 Id: $this->Id <br>
 Libelle: $this->Libelle <br>
CAT;  
}
 
}
 
?>


 
pouvez vous m'aidez plz ???


Message édité par tom261285 le 15-01-2005 à 10:09:29
Reply

Marsh Posté le 14-01-2005 à 22:45:03   

Reply

Marsh Posté le 14-01-2005 à 22:59:40    

tu as oublie une parenthese quelque part :o
 
utilise un "vrai" editeur qui gere ca : jedit :)


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-01-2005 à 23:01:50    

j'utilise CONTEXT mais la mise en page a ete detruite quand j'ai fais le copier coller sur le forum
 
et j'oublie une parenthese ou ?

Reply

Marsh Posté le 14-01-2005 à 23:02:02    

C'est quoi la ligne 44 ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 14-01-2005 à 23:04:46    

celle de la balise de fermeture
?>

Reply

Marsh Posté le 14-01-2005 à 23:10:18    

oublié un point-virgule :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-01-2005 à 23:11:19    

Je connais pas cette syntaxe de print (il faut dire que je connais peu de choses au PHP5). [:figti]  
 
Si tu mets la méthode Affiche en commentaires, pareil ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 14-01-2005 à 23:13:39    

en commentaire ca passe
mais j'ai une classe membre et il y a une methode affiche similaire qui marche impec !?
 
public function showProfil()
{
 print <<< PROFIL
 Login: $this->Login <br>
 Localisation: $this->Localisation <br>
 Mail : $this->Mail <br>
 Date de naissance: $this->Datenais <br>
 Sexe: $this->Sexe <br>
 Status: $this->Status<br>
 Like: $this->Like <br>
 Date inscription: $this->Dateinsc <br>
 Signature: $this->Signature <br>
 Nombre de message: $this->nbMess <br>
PROFIL;
 echo "<img src=\"./avatar/".$this->Avatar."\">";
}

Reply

Marsh Posté le 14-01-2005 à 23:14:50    

c'est peut etre le nom CAT qu'il aime pas [:spamafote]


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-01-2005 à 23:16:54    

negatif
ca me fais pareil sur 2 autres classes et ce sont les seules erreurs(apparentes), mais ca fct aussi sur 2 autre classes... bizarre
donc le bug est bien caché
ca fais 2h que je suis dessus je vois pas quoi changer la


Message édité par tom261285 le 14-01-2005 à 23:17:18
Reply

Marsh Posté le 14-01-2005 à 23:16:54   

Reply

Marsh Posté le 14-01-2005 à 23:18:14    

PROFIL, CAT, tout ça, c'est quoi, concrètement ? Du texte ? Ca doit être remplacé par qqchose ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 14-01-2005 à 23:19:47    

euh je sais plus comment avait dit mon prof... redirection de flux me semble
et ca affiche ce qu'il y a dedans tt simplement comme la balise <pre> en html (si c'est bien celle la)

Reply

Marsh Posté le 14-01-2005 à 23:24:50    

http://php.net/print


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-01-2005 à 23:27:27    

Ex:
print <<<END
Cette syntaxe s'intitule le "here document" et
permet d'afficher plusieurs lignes avec de
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
END;?>
 
je sais mais ou ais je fais une erreur alors ?

Reply

Marsh Posté le 14-01-2005 à 23:45:40    

Sielfried a écrit :

Je connais pas cette syntaxe de print (il faut dire que je connais peu de choses au PHP5). [:figti]  
 
Si tu mets la méthode Affiche en commentaires, pareil ?


 
Cette syntaxe n'est pas specifique a php5, elle est egalement dispo sur php4. De plus elle est pas specifique a print ...
Voila plus d'infos :
http://www.php.net/manual/en/langu [...] ax.heredoc
 

tom261285 a écrit :

en commentaire ca passe
mais j'ai une classe membre et il y a une methode affiche similaire qui marche impec !?
 
public function showProfil()
{
 print <<< PROFIL
 Login: $this->Login <br>
 Localisation: $this->Localisation <br>
 Mail : $this->Mail <br>
 Date de naissance: $this->Datenais <br>
 Sexe: $this->Sexe <br>
 Status: $this->Status<br>
 Like: $this->Like <br>
 Date inscription: $this->Dateinsc <br>
 Signature: $this->Signature <br>
 Nombre de message: $this->nbMess <br>
PROFIL;
 echo "<img src=\"./avatar/".$this->Avatar."\">";
}


 
Hmmm, si en commentant sa passe alors tu dois avoir un bug...
Petite question en passant, entre "<<<" et ton "CAT" (ou PROFIL ds l'exemple cite) tu as un espace ou pas ? Car ici il y en a un, essaye de ne pas en metre.
 
[Edit]
Voila le warning que donne la doc de php concernant cette syntaxe :

Citation :


 It is very important to note that the line with the closing identifier contains no other characters, except possibly a semicolon (;). That means especially that the identifier may not be indented, and there may not be any spaces or tabs after or before the semicolon. It's also important to realize that the first character before the closing identifier must be a newline as defined by your operating system. This is \r on Macintosh for example.
 
If this rule is broken and the closing identifier is not "clean" then it's not considered to be a closing identifier and PHP will continue looking for one. If in this case a proper closing identifier is not found then a parse error will result with the line number being at the end of the script.


Regarde ce que j'ai mis en gras, ca ressemble vraiment a ton probleme. Alors verifie que tu n'as pas indente ton "marqueur de fin".
[/Edit]


Message édité par cerel le 14-01-2005 à 23:52:36
Reply

Marsh Posté le 15-01-2005 à 00:35:58    

Cerel a écrit :

Cette syntaxe n'est pas specifique a php5, elle est egalement dispo sur php4. De plus elle est pas specifique a print ...
Voila plus d'infos :
http://www.php.net/manual/en/langu [...] ax.heredoc


 
Je connaissais pas du tout en effet. Je préfèrerai toujours un echo classique, cela dit. [:spamafote]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-01-2005 à 00:41:23    

Je viens de tester du coup.
 
tom, ton problème vient à coup sûr de l'espace (ou des espaces) après CAT; à la fin du print.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-01-2005 à 00:43:21    

et je dirait meme les espaces avant :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 15-01-2005 à 10:04:42    

j'avais une tabulation apres CAT;
je savais pas que ca jouait ainsi :(
tous mes scripts passent maintenant
MERCI a tous!
lol quelle erreur a la con j'aurais pu chercher tres longtemps !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed