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 :

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);
 
?>
Cela renvois donc sur la page verifi id qui elle vérifie si oui ou non le Mot de passe est correct.
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 :

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');
			}
 
?>
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
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();
}
 
 
 
?>
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.

Pourquoi ? Comment puis-je faire ?

Merci de votre aide.