[PHP] Pendu probleme..

Pendu probleme.. [PHP] - PHP - Programmation

Marsh Posté le 17-02-2004 à 15:57:04    

Bonjour voici un pendu que je dois réaliser, j'ai l'erreur suivante :
 

Code :
  1. Parse error: parse error, unexpected ';' in c:\php\www\oli\php\pendu\jeu.php on line 10

 
 
je ne m'en sors pas :/
 
voici mon code de la page index.php et jeu.php
 
 
index :
 

Code :
  1. <?php
  2. session_start();
  3. $_SESSION["motatrouver"]="";
  4. $_SESSION["nbressai"]=0;
  5. $_SESSION["lettretrouver"]=array();
  6. $_SESSION["lettreessayer"]=array();
  7. ?>
  8. <head>
  9. <title>Page 1</title>
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  11. </head>
  12. <body>
  13. <form action="jeu.php" method="GET" id="jeux">
  14. <input name="mot" type="text" />
  15. <input name="start" type="submit" value="Jouer" />
  16. </form>
  17. </body>
  18. </html>


 
 
jeu :
 

Code :
  1. <?php   
  2. session_start(); 
  3. if(empty($_GET["mot"]))   
  4. {   
  5. print('Mettre un mot'); 
  6. exit();   
  7. }
  8. else 
  9. $_SESSION["motatrouver"]=$_GET["mot"]; 
  10. $LongueurTexte=strlen($_SESSION["i"]); 
  11. ?>
  12. <head>
  13. <title>Document sans titre</title>
  14. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  15. </head>
  16. <body>
  17. <?php
  18. echo '<img src="image/pendu'.($j).'.jpg" alt="Image du Pendu" id="Image"/>';
  19. ?>
  20. <form action="jeu.php" method="GET" id="propo">
  21. <input name="lettre" type="text" size="2"/>
  22. <input name="start" type="submit" value="Proposer" />
  23. </form>
  24. </body>
  25. </html>


 
 
merci  de m'aider ...
 
 
PS : mon pendu doit suivre la marche suivante :
 
La premiere page (index):
 
Dans la première page, une interface du type formulaire permet l'encodage du mot à rechercher.  Elle est constituée d'un champ texte et d'un bouton "jouer".
Dans cette page, une session est créée. Cette session permettra de gérer plusieurs variables.  
1. Une variable pour stocker le mot à retrouver.
2. Une variable pour stocker les lettres du mot trouvées par le joueur. Il s'agit d'un tableau dans lequel on écrit, à la bonne position, les lettres qui sont présentes dans le mot.
3. Une variable pour stocker les lettres du mot essayées par le joueur mais qui ne sont pas dans le mot. Il s'agit d'un tableau dans lequel on écrit les lettres qui ne sont pas présentes dans le mot.
4. Une variable qui comptera le nombre d'essais du joueur.
5. Une variable flag qui signalera la fin du jeu via une valeur booléenne.
 
 
La seconde page (jeu) :
 
On crée l'interface d'encodage et l'interface graphique. L'interface graphique est juste une zone image qui affichera, à chaque essai, l'image adéquate du pendu. La valeur du src est créée dynamiquement.
/****************************************************
*****************************************************
****Avant la création de l'interface, il faut implémenter  
****la logique qui déterminera ce qui sera affiché dans  
****le body.
*****************************************************
****************************************************/
On démarre tout d'abord la session.  
Puis on crée les fonctions éventuellement utiles. Pour créer une fonction, on procède comme en javascript.
Pour savoir quelles fonctions seraient éventuellement utiles, continuons le code principal.
/****************************************************
*****************************************************
****Code général de l'application**********************
*****************************************************
****************************************************/
1. Vérification de la disponibilité d'un nouveau mot dans le tableau super-global adéquat suivie  
a. d'une affectation du dit mot à la variable de session qui le maintiendra tout au long de la session
b. d'une initialisation du tableau des lettres trouvées avec autant de "-" que de lettres dans le mot afin qu'on puisse l'afficher sous la forme "-----"
2. Vérification de la disponibilité d'une nouvelle lettre dans le tableau super-global adéquat.  
a. Si une nouvelle lettre est proposée, elle est vérifiée par une fonction de vérification
/****************************************************
*****************************************************
****Fonction de vérification de la lettre essayée :********
****Cette fonction attend une lettre comme paramètre.
****Elle compare chaque caractère du mot à deviner avec la  
****lettre encodée par le joueur. Chaque fois qu'une lettre  
****correspond, elle l'écrit dans le tableau qui mémorise les  
****lettres trouvées à l'indice correspondant à la position de  
****la lettre dans le mot sinon, elle l'écrit dans le tableau des  
****lettres essayées mais fausses.  
*****************************************************
****************************************************/
De manière plus détaillée, on implémentera ainsi la fonction :
1. On définit à 0 un flag qui permettra d'indiquer si la lettre essayée est bonne.
2. On commence une boucle qui parcourt le mot à trouver et en compare les lettres avec la lettre essayée.
a. Si la lettre essayée est présente dans le mot,
i. On la mémorise dans le tableau des lettres trouvées à l'indice correspondant.  
ii. On met le flag à une valeur différente de 0.
iii. On teste si le tableau des lettres trouvées, converti en chaîne, est égal au mot qu'il fallait deviner. Si c'est le cas,
1. On enregistre le succès dans le flag de session défini précédemment.
3. Une fois que la boucle est finie, on regarde ce qui se trouve dans le flag qui vérifie si une lettre correcte a été jouée.  
a. Si c'est toujours 0 (pas de lettre correcte jouée),  
i. On vérifie si le nombre d'essais maxi est atteint.  
1. S'il n'est pas atteint,  
a. On ajoute la lettre essayée au tableau des lettres essayées mais fausses.
b. On incrémente le nombre d'essais de 1.
2. Si par contre, le nombre d'essais dépasse le nombre d'essais maxi.
a. On enregistre l'échec dans le flag destiné à ça.
/****************************************************
*****************************************************
****Création de l'interface.****************************
*****************************************************
****************************************************/
On doit tout d'abord insérer une balise d'image et prévoir de faire écrire son nom dynamiquement. Pour ça, on pourrait utiliser la variable qui mémorise le nombre d'essais ratés?
Ensuite on doit présenter les lettres trouvées. Il s'agit du contenu du tableau qui stocke les lettres trouvées (par défaut il contint des "?" ).
En dessous, on affichera de la même façon le contenu du tableau qui stocke les lettres essayées mais fausses.
Selon la valeur du flag qui indique le succès on choisira d'afficher soit
1. Le formulaire d'encodage des lettres à essayer.
2. Un message d'échec avec en plus l'affichage du mot correct et un lien vers la page 1 pour rejouer.
3. L'affichage d'un message de victoire et un lien vers la page 1 pour rejouer.


Message édité par Dolby le 17-02-2004 à 16:41:10
Reply

Marsh Posté le 17-02-2004 à 15:57:04   

Reply

Marsh Posté le 17-02-2004 à 16:00:04    

t'as commencé par regarder à la ligne 10 de jeu.php ?

Reply

Marsh Posté le 17-02-2004 à 16:01:11    

je connais rien en php  mais il manque pas des {} là:

Code :
  1. else
  2. $_SESSION["motatrouver"]=$_GET["mot"];
  3. $LongeurTexte=strlen($_SESSION['i'];
  4. ?> )

Reply

Marsh Posté le 17-02-2004 à 16:02:25    


<?php  
Session_Start();
if(empty($_SESSION["motatrouver"]))  
{  
print('Mettre un mot');
exit();  
}
else
$_SESSION["motatrouver"]=$_GET["mot"];
$LongeurTexte=strlen($_SESSION['i'];
?> )  
 
la parenthese devrait etre avant la fermeture de la balise ?> nan ?
 
 :jap:

Reply

Marsh Posté le 17-02-2004 à 16:03:42    

et comme le dit urd-sama, tas surement oublie des parenthese pour le bloc else

Reply

Marsh Posté le 17-02-2004 à 16:06:12    

+1 sur boulax :D
 
Sinon on peut se passer des {} mais attention ça n'execute que la première instruction déclarée après le else!


Message édité par anapajari le 17-02-2004 à 16:06:40
Reply

Marsh Posté le 17-02-2004 à 16:07:48    

ca ne resoud pas mon erreur a la ligne 10 :/

Reply

Marsh Posté le 17-02-2004 à 16:09:54    

:pfff:  

Code :
  1. ligne 10: $LongeurTexte=strlen($_SESSION['i'];


T'as pas l'impression qu'il manque la parenthèse de fin comme te l'expliquait boulax????


Message édité par anapajari le 17-02-2004 à 16:10:31
Reply

Marsh Posté le 17-02-2004 à 16:10:01    

plus precisement : si le cas else se presente, il execute celle immediatement apres et la suivante qui aurait ete de toute facon executee. (je precise parce que au vu du premier post voila koi) :-)

Reply

Marsh Posté le 17-02-2004 à 16:11:52    

pkoi ton i est entre quote ? si c un entier pas besoin, si cest une chaine prends des doubles quotes pour voir

Reply

Marsh Posté le 17-02-2004 à 16:11:52   

Reply

Marsh Posté le 17-02-2004 à 16:12:42    

boulax a écrit :

et comme le dit urd-sama, tas surement oublie des parenthese pour le bloc else


ch'us two fowte  :sol:

Reply

Marsh Posté le 17-02-2004 à 16:16:04    

c'est mieux là ?

Reply

Marsh Posté le 17-02-2004 à 16:17:30    

mmm ya du niveau la

Reply

Marsh Posté le 17-02-2004 à 16:18:36    

<?php    
Session_Start();  
if(empty($_SESSION["motatrouver"]))    
{    
print('Mettre un mot');  
exit();    
}  
else
{  
$_SESSION["motatrouver"]=$_GET["mot"];  
$LongueurTexte=strlen($_SESSION["i"]);  
}  
?> )  
 
<head>  
<title>Document sans titre</title>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
</head>  
 
<body>  
<?php  
echo '<img src="image/pendu'.($j).'.jpg" alt="Image du Pendu" id="Image"/>';  
?>  
 
<form action="jeu.php" method="GET" id="propo">  
<input name="lettre" type="text" size="2"/>  
<input name="start" type="submit" value="Proposer" />  
</form>  
 
</body>  
</html>


---------------
Mes guitares, ampli, et effets sont en vente !
Reply

Marsh Posté le 17-02-2004 à 16:21:09    

Nouvelle erreur :  
 
Il me demande de mettre un mot alors que c'est la condition si je n'entre pas de mot !
J'ai pourtant bien rentrer un mot dans mon formulaire :/

Reply

Marsh Posté le 17-02-2004 à 16:25:20    

pkoi tu utilises une session ? ton script jeu a automatiquement acces au mot que tu a rentre ( variable $mot ) donc pas besoin de tout ce bordel

Reply

Marsh Posté le 17-02-2004 à 16:26:41    

Mon prof m'oblige d utiliser les sessions je n'ai pas le choix :/


Message édité par Dolby le 17-02-2004 à 16:26:57
Reply

Marsh Posté le 17-02-2004 à 16:28:10    

oublies ce que j'ai dit lol
verifie plutot que session_start() s'ecrit en minuscule et verifie avec un print si t variable sont bien enregistree, sinon passe par le classique session_register :)

Reply

Marsh Posté le 17-02-2004 à 16:31:02    

d'accord pr session_start en mini, comment ca marche pour les session_register ?

Reply

Marsh Posté le 17-02-2004 à 16:31:03    

$_SESSION["motatrouver"]="";  
 
if(empty($_SESSION["motatrouver"]))    
{    
print('Mettre un mot');  
exit();    
 
 
ya rien dans ta variable donc c normal qu'il rentre dans la condition
}

Reply

Marsh Posté le 17-02-2004 à 16:33:29    

tu dois mettre plutot (si jai bien compris)
 
<?php    
session_start();  
if(empty($_GET["mot"]))    
{    
print('Mettre un mot');  
exit();    
}
else  
{  
$_SESSION["motatrouver"]=$_GET["mot"];  
$LongueurTexte=strlen($_SESSION["i"]);  
}  
?>
 
 
pour tester que tu as bien tappe un mot dans le formulaire

Reply

Marsh Posté le 17-02-2004 à 16:37:23    

c'est deja mieux merci !
 
nouvelle erreur :
Notice: Undefined index: i in c:\php\www\oli\php\pendu\pendu\jeu.php on line 11
 
Notice: Undefined variable: j in c:\php\www\oli\php\pendu\pendu\jeu.php on line 21
 
 
j'ai l'affichage de mon image de base du pendu et le choix d'entrer une lettre
ps:  topic edité


Message édité par Dolby le 17-02-2004 à 16:37:57
Reply

Marsh Posté le 17-02-2004 à 16:42:21    

de maniere generale, le numero de la ligne indique l'endroit d'une erreur donc bon il serait bon dy faire un tour.. de plus tes erreurs sont explicites : ta variable j n'est pas declaree et pour le i je ten ai deja parle plus haut !!!

Reply

Marsh Posté le 17-02-2004 à 16:45:05    

Dolby a écrit :

Mon prof m'oblige d utiliser les sessions je n'ai pas le choix :/


 :heink: avant les sessions je pense qu'il serait peut-être bon de comprendre comment marche l'initialisation d'une variable ...
 

Code :
  1. ligne 11: $LongueurTexte=strlen($_SESSION["i"]);


qu'y a t'il dans $_SESSION["i"]? quand l'as tu initialisée?
 

Code :
  1. ligne 21: echo '<img src="image/pendu'.($j).'.jpg" alt="Image du Pendu" id="Image"/>';


qu'y a t'il dans $j? quand l'as tu initialisée?
 
Enfin on est pas la pour faire tes exos, donc quand il y a marqué "undefined variable" tu pourrais quand même faire un effort!


Message édité par anapajari le 17-02-2004 à 16:45:45
Reply

Marsh Posté le 17-02-2004 à 16:50:11    

anapajari a écrit :


 :heink: avant les sessions je pense qu'il serait peut-être bon de comprendre comment marche l'initialisation d'une variable ...
 

Code :
  1. ligne 11: $LongueurTexte=strlen($_SESSION["i"]);


qu'y a t'il dans $_SESSION["i"]? quand l'as tu initialisée?
 

Code :
  1. ligne 21: echo '<img src="image/pendu'.($j).'.jpg" alt="Image du Pendu" id="Image"/>';


qu'y a t'il dans $j? quand l'as tu initialisée?
 
Enfin on est pas la pour faire tes exos, donc quand il y a marqué "undefined variable" tu pourrais quand même faire un effort!


 
lol exact  :sarcastic:

Reply

Marsh Posté le 17-02-2004 à 17:21:31    

oui j en conviens ! je check lentement mais surement mon code

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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