[PHP] "Parse error" à la ligne 10

Fermé
Nicolas M. Messages postés 48 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 novembre 2010 - 5 mars 2009 à 22:36
 Nicolas M. - 24 avril 2009 à 20:01
Bonjour,
J'ai commencé la modification du logiciel Mostick sur la clé USB qui m'a été fournie en début d'année scolaire, comme à tous les élèves de 3°. Sur la page "logiciels.html", j'ai entrepris de placer une liste déroulante montrant les différents modules de la SB OpenOffice.org. Or, un formulaire comme ma liste déroulante doit pointer vers un fichier PHP. J'ai créé un fichier PHP qui demande à l'ordinateur d'afficher un lien de lancement du module voulu, selon la valeur de la variable récupérée auparavant par un $_POST['modules_ooo'] (modules_ooo est le nom de ma variable). Voici :
1) Le code de ma liste déroulante :

<form method="post" action="http://localhost/module.php"> //Pour pouvoir l'utiliser avec WAMP, je l'ai mis dans le dossier www qui requiert de pointer vers l'adresse localhost
<select name="modules_ooo">
<option value="base">OOo Base</option>
<option value="calc">OOo Calc</option>
<option value="draw">OOo Draw</option>
<option value="impress">OOo Impress</option>
<option value="math">OOo Math</option>
<option value="writer">OOo Writer</option>
</select><input type="submit" value="Accès rapide" /></form>


2) Le code de mon fichier PHP :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=8859-1" />
<link rel="stylesheet" media="screen" href="css/logiciels.css" />
<title>Des logiciels libres sur votre support amovible !</title>
</head>
<body>
<?php $_POST['modules_ooo']
if ($modules_ooo == "base")
{ ?>
<a href="lch/apps/openoffice_base.lch">Cliquez ici pour lancer votre module OpenOffice.</a>
<?php
}elseif ($modules_ooo == "calc")
{ ?>
<a href="lch/apps/openoffice_calc.lch">Cliquez ici pour lancer votre module OpenOffice.</a>
<?php
}else
{ ?>
<a href="lch/apps/openoffice_impress.lch">Cliquez ici pour lancer votre module OpenOffice.</a>
<?php
} ?>
</body>


Note : Etant donné que Mozilla Firefox m'affiche une "Parse Error" à la ligne 10 du programme, je n'ai pas affiché les six modules de la suite. La ligne 10 est la suivante : if ($modules_ooo == "base")
A voir également:

2 réponses

Bonjour

L'erreur vient de la ligne précédente, le $_POST['modules_ooo'] n'a pas grand chose à faire ici. Il te manque une partie du code. Essaye de modifier cette partie comme ça :
...
<body>
<?php
$modules_ooo=$_POST['modules_ooo'];
if ($modules_ooo == "base")
{ ?>
...
0
Nicolas M. Messages postés 48 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 novembre 2010 113
5 mars 2009 à 23:11
Ah oui, je suis bête... Si je n'initialise pas la variable, inutile d'essayer de l'appeler... -_-' merci, je vais pouvoir montrer ma clé entièrement customisée à mon prof à la rentrée ^^
0
Nicolas M. Messages postés 48 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 novembre 2010 113
6 mars 2009 à 16:24
Encore un problème : cette fois, c'est ligne 18 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr">
<head>
  <meta http-equiv="content-type" content="text/html; charset=8859-1" />  
  <link rel="stylesheet" media="screen" href="css/logiciels.css" />
  <title>Des logiciels libres sur votre support amovible !</title>
</head>
<body>
	<?php $modules_ooo = $_POST['modules_ooo'];
		if ($modules_ooo == "base")
		{	?>
			<a href="lch/apps/openoffice_base.lch">Cliquez ici pour lancer OpenOffice.org Base.</a>
	<?php
		}elseif ($modules_ooo == "calc");
		{	?>
			<a href="lch/apps/openoffice_calc.lch">Cliquez ici pour lancer OpenOffice.org Calc.</a>
	<?php
		}elseif ($modules_ooo == "draw");
		{	?>
			<a href="lch/apps/openoffice_draw.lch">Cliquez ici pour lancer OpenOffice.org Draw.</a>
	<?php
		}elseif ($modules_ooo == "impress");
		{	?>
			<a href="lch/apps/openoffice_impress.lch">Cliquez ici pour lancer OpenOffice.org Impress.</a>
	<?php
		}elseif ($modules_ooo == "math");
		{	?>
			<a href="lch/apps/openoffice_math.lch">Cliquez ici pour lancer OpenOffice.org Math.</a>
	<?php
		}elseif ($modules_ooo == "writer");
		{	?>
			<a href="lch/apps/openoffice_writer.lch">Cliquez ici pour lancer OpenOffice.org Writer.</a>
	<?php
		}else
		{	echo ("Erreur : Module inexistant")
		}
</body>


Le code de la liste déroulante est cité dans mon premier message. Elle n'a pas changé. Comme vous pouvez le voir, la ligne 18 est quasiment identique à la ligne 14 qui, elle, ne pose aucun problème. La valeur "draw" est bien nommée dans la liste déroulante. Merci de m'aider à résoudre cette "parse error".
0
Nicolas,

Je ne suis pas une pointure en PHP, mais à la lecture de ton code il me semble que :

1) il n'y a aucune raison de mettre des points-virgules en fin de ligne dans tes conditions " elseif ... ",
pour Calc - Draw - Impress - Math - Writer, d'ailleurs tu n'en as pas mis à la ligne " if ... base "
juste au-dessus

2) il manque un point-virgule à la fin de ta ligne " echo ... inexistant "
car là ce n'est pas une condition, mais une instruction, et à ma connaissance on clôt avec un point-virgule

3) il faudrait "fermer" l'appel au PHP avec un " ?> " juste avant la balise " </body> "

Une " parse error " de toute façon, c'est souvent lié à une faute de syntaxe.
Essaie ça, bon courage et bon développement !
0
Nicolas M. > Didier
24 avril 2009 à 20:01
Merci de vos réponses. J'ai cependant abandonné l'idée du PHP ; le code est destiné à être lu sur une clé USB, qui ne possède pas d'environnement PHP comme par exemple WampServer. Il m'est donc impossible d'utiliser le PHP dans ma page... De plus, j'ai perdu ma clé USB, mais là, je ne crois pas que vous puissiez faire quoi que ce soit... ^^' Merci quand même.
0