Bonjour,
Je suis entrain de construire un site internet.
Sur ma page d'index j'ai des menus mais je souhaite qu'il ne soit accessible qu'uniquement au personne identifié. J'ai donc créé un formulaire (relié à une BDD) permettant de s'identifier dont voici le code :
Cela renvois donc sur la page verifi id qui elle vérifie si oui ou non le Mot de passe est correct.
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 <?php //inclusion du fichier qui contient les fonctions include("../include/connexion.inc.php"); include("../include/fonctions.inc.php"); $idcom2=connexion("evaluation","parametre_connec"); //appel de la fonction pour construire le début de la page debut_html(); echo" <form method='POST' action='verifid.php'> <h3>S'authentifier</h3> ID : <input type='text' name='id' value='' /><br></br> Mot de passe : <input type='password' name='mdp' value='' /><br></br> <input type='submit' value='Envoyer' />"; //appel de la fonction pour construire la fin de la page fin_html(); mysql_close($idcom2); ?>
En partant de ce site ci ( http://fr.html.net/tutorials/php/lesson12.php) j'ai donc cherché à affecté à la session un YES ou NO en fonction que si le mot de passe était bon ou non. Ce qui me donne ceci :
Si le mot de passe est faux, j'ai bien le message que je souhaite. Si le mot de passe est correct je vais bien sur la page "page.php" dont voici le code
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 //inclusion du fichier qui contient les fonctions include("../include/connexion.inc.php"); include("../include/fonctions.inc.php"); $idcom2=connexion("evaluation","parametre_connec"); // Récupération des données saisies dans le formulaire d'accueil $id=$_POST['id']; $mdp=$_POST['mdp']; // Requête de recherche du mot de passe et de l'id de l'utilisateur $req="SELECT * FROM utilisateurs WHERE id='$id' and mdp='$mdp'"; // Execution de la requête $sql=mysql_query($req); if (mysql_num_rows($sql)==0) // La requête ne renvoie aucun résultat, l'id est inconnu // et/ou le mot de passe est incorrect { session_start(); $_SESSION["id"] = "NO"; echo "Erreur de mot de passe ; <a href='index.php'>Identifiez-vous</a>"; } else // La requête renvoie au plus un résultat (le client recherché) { session_start(); $_SESSION["id"] = "YES"; header('location: page.php'); } ?>
Or, à ce moment quand bien même que le mot de passe soit correct, la page ne s'affiche pas et le contenu de mon echo c'est à dire "bla la" s'affiche dans tous les cas même si le mot de passe est bon alors qu'il aurait du obtenir la variable de session YES.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 <?php // Start up your PHP Session session_start(); // If the user is not logged in send him/her to the login form if ($_SESSION["id"] = "NO") { echo"blabla"; } else { //inclusion du fichier qui contient les fonctions include("../include/fonctions.inc.php"); //appel de la fonction pour construire le début de la page debut_html(); if (isset ($_GET['num'])) { $num = ($_GET['num']); ////////////////////////////////////// include("../include/connexion.inc.php"); $idcom2=connexion("evaluation","parametre_connec"); //requete $requete="SELECT `numero`, `titre`, `contenu` FROM `articles` WHERE `numero`=$num"; $result=@mysql_query($requete,$idcom2); $nb_col=mysql_num_fields($result); $nb_ligne=mysql_num_rows($result); $ligne=mysql_fetch_row($result); for($j=0;$j<$nb_col;$j++) $ligne[$j]; $numero=$ligne[0]; $titre=$ligne[1]; if (!isset($titre)) $titre="Ecrire votre titre"; $contenu=$ligne[2]; if (isset($contenu) || isset($titre)||isset($numero)) $remplacer=true; else $remplacer=false; echo" <form name='test' action='enregistrement.php?num=$num&&remplacer=$remplacer' method='POST'> <input type='text' value='".$titre."' name='titre'> <textarea name='texte' cols='50' rows='20' id='myarea1' class='mceEditor'>"; if (isset($contenu)) echo $contenu; echo " </textarea> <input type='submit' value='Vérification des mises à jour'> </form>"; } else echo "selectionner un item du menu"; //appel de la fonction pour construire la fin de la page fin_html(); } ?>
Pourquoi ? Comment puis-je faire ?
Merci de votre aide.
Partager