Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1176 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Pendu probleme..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Pendu probleme..

n°645568
Dolby
Posté le 17-02-2004 à 15:57:04  profilanswer
 

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
mood
Publicité
Posté le 17-02-2004 à 15:57:04  profilanswer
 

n°645571
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-02-2004 à 16:00:04  profilanswer
 

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

n°645574
urd-sama
waste of space
Posté le 17-02-2004 à 16:01:11  profilanswer
 

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. ?> )

n°645575
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:02:25  profilanswer
 


<?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:

n°645580
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:03:42  profilanswer
 

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

n°645593
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-02-2004 à 16:06:12  profilanswer
 

+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
n°645599
Dolby
Posté le 17-02-2004 à 16:07:48  profilanswer
 

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

n°645606
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-02-2004 à 16:09:54  profilanswer
 

: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
n°645607
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:10:01  profilanswer
 

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) :-)

n°645616
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:11:52  profilanswer
 

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

mood
Publicité
Posté le 17-02-2004 à 16:11:52  profilanswer
 

n°645618
urd-sama
waste of space
Posté le 17-02-2004 à 16:12:42  profilanswer
 

boulax a écrit :

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


ch'us two fowte  :sol:

n°645624
Dolby
Posté le 17-02-2004 à 16:16:04  profilanswer
 

c'est mieux là ?

n°645628
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:17:30  profilanswer
 

mmm ya du niveau la

n°645631
format_c
Plouf plouf ...
Posté le 17-02-2004 à 16:18:36  profilanswer
 

<?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 !
n°645642
Dolby
Posté le 17-02-2004 à 16:21:09  profilanswer
 

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 :/

n°645662
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:25:20  profilanswer
 

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

n°645665
Dolby
Posté le 17-02-2004 à 16:26:41  profilanswer
 

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
n°645670
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:28:10  profilanswer
 

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 :)

n°645673
Dolby
Posté le 17-02-2004 à 16:31:02  profilanswer
 

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

n°645674
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:31:03  profilanswer
 

$_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
}

n°645679
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:33:29  profilanswer
 

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

n°645693
Dolby
Posté le 17-02-2004 à 16:37:23  profilanswer
 

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
n°645707
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:42:21  profilanswer
 

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 !!!

n°645713
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-02-2004 à 16:45:05  profilanswer
 

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
n°645724
boulax
Inserer phrase hype en anglais
Posté le 17-02-2004 à 16:50:11  profilanswer
 

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:

n°645784
Dolby
Posté le 17-02-2004 à 17:21:31  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Pendu probleme..

 

Sujets relatifs
[PHP] ignorer le 1er \n ?[PHP-COOKIE] Help me - a n'y rien comprendre :(
[PHP] utilisation de polices TTF dans les images [Résolu][PHP MYSQL] Comment font les sites comme royaumes pour...
Probleme de notification OnAccept sur les CSocket[PHP]connaitre le nom du répertoire courant
[JS] Problème onchange et valeurs[tkinter] problème avec tkFileDialog.askopenfile()
[PHP] Problème avec imap_get_quota 
Plus de sujets relatifs à : [PHP] Pendu probleme..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR