Pendu probleme.. [PHP] - PHP - Programmation
Marsh Posté le 17-02-2004 à 16:01:11
je connais rien en php mais il manque pas des {} là:
Code :
|
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 ?
Marsh Posté le 17-02-2004 à 16:03:42
et comme le dit urd-sama, tas surement oublie des parenthese pour le bloc else
Marsh Posté le 17-02-2004 à 16:06:12
+1 sur boulax
Sinon on peut se passer des {} mais attention ça n'execute que la première instruction déclarée après le else!
Marsh Posté le 17-02-2004 à 16:09:54
Code :
|
T'as pas l'impression qu'il manque la parenthèse de fin comme te l'expliquait boulax????
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) :-)
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
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
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>
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
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
Marsh Posté le 17-02-2004 à 16:26:41
Mon prof m'oblige d utiliser les sessions je n'ai pas le choix
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
Marsh Posté le 17-02-2004 à 16:31:02
d'accord pr session_start en mini, comment ca marche pour les session_register ?
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
}
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
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é
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 !!!
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 |
avant les sessions je pense qu'il serait peut-être bon de comprendre comment marche l'initialisation d'une variable ...
Code :
|
qu'y a t'il dans $_SESSION["i"]? quand l'as tu initialisée?
Code :
|
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!
Marsh Posté le 17-02-2004 à 16:50:11
anapajari a écrit :
|
lol exact
Marsh Posté le 17-02-2004 à 17:21:31
oui j en conviens ! je check lentement mais surement mon code
Marsh Posté le 17-02-2004 à 15:57:04
Bonjour voici un pendu que je dois réaliser, j'ai l'erreur suivante :
je ne m'en sors pas
voici mon code de la page index.php et jeu.php
index :
jeu :
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