[RESOLU] manque t-il un point virgule manquant à ce message à afficher?

moussa85
Invité n'ayant pas de compte PHPfrance

20 juin 2015, 17:28

Aidez-moi à trouver pourquoi on m'envoie qu'un point-virgule manque au message à afficher!
<!DOCTYPE html>
<html>
    <head>
		<title>Une boucle do-while</title>
	</head>
	<body>
    <?php
		$condition =true;
		do {
			echo ("<p>La boucle est exécutée une fois alors que la condition est fausse.</p>");
			}
		while ($condition==false);
		
		echo ("<p>Maintenant on est sorti de la boucle.</p>");
    ?>
    </body>
</html>

Mammouth du PHP | 688 Messages

20 juin 2015, 19:29

quel est le message d'erreur exact ?

moussa85
Invité n'ayant pas de compte PHPfrance

21 juin 2015, 05:33

voila le message qu'on envoie:
Oups, merci de réessayer. Avez-vous ajouté un point-virgule après le texte à afficher ?

moussa85
Invité n'ayant pas de compte PHPfrance

23 juin 2015, 01:33

pourquoi vous ne voulez pas m'aider? help me please!

Avatar du membre
Mammouth du PHP | 1609 Messages

23 juin 2015, 12:20

Bonjour moussa85, il s'agit d'une plaisanterie n'est ce pas ?
Il n'y a visiblement aucune erreur dans le code présenté et il n'y a aucun lien apparent avec ce fameu message d'erreur... en quoi pourrions nous t'aider ?
Développeur web depuis + de 20 ans

moussa85
Invité n'ayant pas de compte PHPfrance

23 juin 2015, 12:30

ce n'est pourtant pas une blague. je fais un test en ligne et arrivé à au boucle for, on m'envoie le message : "Oups, merci de réessayer. Avez-vous ajouté un point-virgule après le texte à afficher ? "
Voila je suis bloqué à ce stade de mon test et j'avance pas tant que j'ai pas résolu ce cas.
Merci d'avance et je compte sur vous tous pour me debugger.

Avatar du membre
Mammouth du PHP | 1609 Messages

23 juin 2015, 12:36

Il n'y a pas de boucle for dans ton script, il y a un do while et le message n'a aucun sens au regard du code présenté et ne ressemble de plus en rien à un message d'erreur php.
Quand il y a une erreur de syntaxe, comme par exemple un point virgule manquant, cela provoque une parse error dont le message est bien différent.
Développeur web depuis + de 20 ans

moussa85
Invité n'ayant pas de compte PHPfrance

23 juin 2015, 12:51

saian, tu as raison c'est un do-while, j'ai veillé toute la nuit et je viens de me réveiller.........sans faire attention j'ai écris boucle for.
mais vraiment, j'ai besoin d'aide. c sur le site http://www.codecademy.com.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 juin 2015, 12:54

Bonjour,

Je rejoins Saian : le code que tu nous montres ne correspond pas à ce que tu décris. Quand tu dis que tu fais un test en ligne, que veux tu dire exactement ? tu as uploadé ton fichier php sur ton serveur et tu appelles l'url de celui-ci via ton navigateur ? ou tu passes par un outil en ligne pour valider la syntaxe de ton code php ? ou autre ?

Pour le moment, la seule "erreur" que l'on puisse trouver dans le code posté plus haut serait celle-ci : "La boucle est exécutée une fois même si la condition est fausse." ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Avatar du membre
Mammouth du PHP | 1609 Messages

23 juin 2015, 12:59

Oula, mais ça c'est un site pour faire des exercices. L'erreur n'a rien à voir avec php, j'imagine que tu n'as simplement pas bien répondu à l'énoncer de l'exercice.

Ceci dit j'ai quand même testé le code sur la page d'introduction au php et elle affiche bien ceci :

La boucle est exécutée une fois alors que la condition est fausse.

Maintenant on est sorti de la boucle.
Développeur web depuis + de 20 ans

moussa85
Invité n'ayant pas de compte PHPfrance

23 juin 2015, 13:05

<!DOCTYPE html>
<html>
<head>
<title>Une boucle do-while</title>
</head>
<body>
<?php
$condition = false;
do
echo "<p>La boucle est exécutée une fois alors que la condition est fausse.</p>";
while ($condition);


echo "<p>Maintenant on est sorti de la boucle.</p>";
?>
</body>
</html>
l’énoncé est :
A partir de la ligne 9, il y a une boucle do / while qui doit s'exécuter une seule fois et puis sortir. Mais il manque des accolades { }, des parenthèses ( ) et des point-virgules ;.

Remplissez les { }, ( ) et ; qui manquent pour s'assurer que la boucle do / while s'exécute correctement. Regardez la boucle do / while ci-dessus comme exemple.
Ensuite, cliquez sur "Vérifier vos réponses" et vérifiez que la page ressemble à ce que vous attendiez.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 juin 2015, 13:06

Le problème est sur cette page : http://www.codecademy.com/fr/courses/we ... c7e9000001

L'exercice demande d'ajouter les accolades, parenthèses et point-virgules manquants... il manque bien les accolades, mais les points-virgules et parenthèses sont bien présents...
Le message d'erreur "Oups, merci de réessayer. Avez-vous ajouté un point-virgule après le texte à afficher ?" apparaît à l'écran, mais le résultat dans l'aperçu est bien celui attendu...

Donc pas d'inquiétude, ton code est bon, c'est le leur qui ne l'est pas, tu peux passer à l'exercice suivant ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Avatar du membre
Mammouth du PHP | 1609 Messages

23 juin 2015, 13:12

Il doit y avoir un problème avec le parser du site.

Tu peux toujours essayer comme ça :
<!DOCTYPE html>
<html>
<head>
<title>Une boucle do-while</title>
</head>
<body>
<?php
$condition = false;
do {
  echo "<p>La boucle est exécutée une fois alors que la condition est fausse.</p>";
} while ($condition);


echo "<p>Maintenant on est sorti de la boucle.</p>";
?>
</body>
</html>
Il y aurait en fait seulement 2 accolades à ajouter.
Les parenthèses sur les echo sont facultatives.
$condition étant égale à false, il n'y a pas besoin d'ajouter == false


EDIT
Voilà, comme Ryle, ton code est fonctionnel, tu peux passer à l'exercice suivant ;)
Et éventuellement signaler au site qu'il y a un problème sur cet exercice...

EDIT 2
En fait, il faut même ne pas mettre while($condition == false) sinon tu crées une boucle infinie $condition étant égal a false.
Modifié en dernier par Saian le 23 juin 2015, 13:38, modifié 1 fois.
Développeur web depuis + de 20 ans

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

23 juin 2015, 13:22

Bonjour,

Une recherche sur internet confirme que ça semble bien être un bug de la plateforme CodeAcademy
Quand tout le reste a échoué, lisez le mode d'emploi...

moussa85
Invité n'ayant pas de compte PHPfrance

23 juin 2015, 13:30

merci Saian et Ryle, j'ai trouvé la solution: il a fallu ajouté un point virgule après "exécutée" et un autre après "sortie". je ne sais pas pourquoi, mais ça a marché. je crois qu'ils ont un problème de parser. Merci quand même.