Bonjour,

Je suis débutante sur php. J'ai écumé tous le sforums et la doc officielle, mais je n'arrive pas à mes fins sur un problème hyper simple.

Voici ce que je souhaite faire :

Un utilisateur a une seule chance pour rentrer un code. S'il échoue au bout de la 1ère fois, il a perdu, il ne peut plus recommencer.

J'ai été voir du côté des sessions, mais je suis bloqué. En fait j'ai réussi à faire fonctionner mes formulaires mais là le coup du nombre limité de mot de passe, c'est au dessus de mes capacités.

Déjà première question : où dois-je mettre la condition : en entrée de page en comptant le nombre de venu du visiteur sur ma première page ?

ou bien dois-je construire le truc à partir du nombre de clic sur le bouton valider (mais il me semble que ce n'est pas possible sur php) ?

J'ai vu beaucoup de choses avec la question du login et du mot de passe mais mon visiteur n'a ps de login.

Il vient "anonymement" sur la page et il a une seule chance de rentrer le code.. point...

J'ai pensé à un truc en parcourant des tutos ... voici le code de départ :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// si le cookie existe, session_start() va chercher les infos de la session correspondante (qui sont situées sur le serveur, elles, contrairement au cookie) pour remplir le tableau $_SESSION
// sinon il va générer un id et l'envoyer au navigateur par cookie pour que celui-ci le retienne, et créer un tableau $_SESSION vide
// après le navigateur choisit de garder ou non le cookie qui a été envoyé, c'est là le problème
session_start();
 
if(isset($_SESSION['nb_venues'])) { // si une valeur a déjà été sauvegardée pour cet id
  // on l'affiche puis on l'incrémente
  echo "Vous êtes déjà passé {$_SESSION['nb_venues']} fois sur cette page !";
  $_SESSION['nb_venues']++;
}
else { // sinon
  // on l'initialise pour la prochaine fois qu'on passera ici
  echo "Je ne vous ai jamais vu, non ?";
  $_SESSION['nb_venues'] = 0;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Coffre</title>
    </head>
    <body>
        <p>Voici le coffre fort privé attribué à Hubert de Sacinay.</p>
		<p> Il vous faut retrouver le code et le rentrer ici pour pouvoir l'ouvrir.</p>
		<img class='alignnone size-full wp-image-7258' src='http:adresse de l'image.jpg' alt='E2 - écran coffre ouvert' width='842' height='595'/>"
		<p> Bonne chance </p>
        <form action="contenu coffre.php" method="post">
            <p>
            <input type="password" name="mot_de_passe" />
            <input type="submit" value="Valider" />
            </p>
        </form>
 
    </body>
</html>

Je voudrais faire un truc dans le genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
// si le cookie existe, session_start() va chercher les infos de la session correspondante (qui sont situées sur le serveur, elles, contrairement au cookie) pour remplir le tableau $_SESSION
// sinon il va générer un id et l'envoyer au navigateur par cookie pour que celui-ci le retienne, et créer un tableau $_SESSION vide
// après le navigateur choisit de garder ou non le cookie qui a été envoyé, c'est là le problème
session_start();
 
if(isset($_SESSION['nb_venues'])) { // si une valeur a déjà été sauvegardée pour cet id
  // on l'affiche puis on l'incrémente
  echo "Vous avez perdu";
  $_SESSION['nb_venues']++;
}
else { // sinon
  // on l'initialise pour la prochaine fois qu'on passera ici
  echo " Voici le coffre fort privé attribué à Hubert de Sacinay.
		Il vous faut retrouver le code et le rentrer ici pour pouvoir l'ouvrir.
		<img class='alignnone size-full wp-image-7258' src='http://adresse de l'image' alt='E2 - écran coffre ouvert' width='842' height='595'/>"
		Bonne chance
        <form action="contenu coffre.php" method="post">
            <p>
            <input type="password" name="mot_de_passe" />
            <input type="submit" value="Valider" />
            </p>
        </form>;
  $_SESSION['nb_venues'] = 0;
}
?>
Bien sur ce code ne marche pas.....

Un énorme merci aux personnes qui prendront la peine de lire ceci et d'y répondre