Salut tout le monde, je d'implémenter un script d'authentification dans mes pages afin de rediriger l'utilisateur vers une session protégée.
Un login et MDP unique pour tous les utilisateurs ayant le droits d'accès.

REQUETE CREATION DE LA TABLE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
CREATE TABLE phplogin (
  CodeTemporaire varchar(50) default NULL,
  Date timestamp(14) NOT NULL,
  Pseudo varchar(20) NOT NULL default '',
  Passe varchar(20) NOT NULL default '',
  PRIMARY KEY  (Pseudo)
) TYPE=MyISAM;
FORM : (le code n'est pas entier ici, pas la pein, et de toute façon le problème ne vient pas de là)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<form method="post" action="login.php">
<input type="text" name="pseudo_membre">
<input type="password" name="passe_membre">
<input type="image" src="images/login_11.gif">
</form>
LOGIN.PHP :
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
<?php
include('fonctions.php');
include('variables.php');
 
// CONNEXION A LA BASE DE DONNEE
connexion();
no_cache();
 
if(intval($login)==1 && isset($id))
	{
	$requete=requete("UPDATE "._TABLE_." set CodeTemporaire='', Date=NOW()-10000 where CodeTemporaire='".$id."'");
	header("Location: ".$pagelogin);
	}
else
	{
	// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
	// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
	$requete=requete("select Pseudo from "._TABLE_." where Pseudo='".$pseudo_membre."' and Passe='".$passe_membre."'");
 
	// SI AUCUN ENREGISTREMENT NE CORRESPOND
	if(mysql_num_rows($requete)==0)
		{
		// REDIRECTION VERS LA PAGE ERREUR
		header("Location: ".$pagelogin);
		}
	// SI LE LOGIN ET MOT DE PASSE SONT EXACTES	
	else
		{
		// CREATION D'UN IDENTIFIANT ALEATOIRE
		$taille = 50;
		$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
		srand(time());
		for ($i=0;$i<$taille;$i++)
			{
			$id.=substr($lettres,(rand()%(strlen($lettres))),1);
			}
 
		// MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE 
		$requete=requete("UPDATE "._TABLE_." set CodeTemporaire='".$id."', Date=NOW()+".$validitesession." where Pseudo='".$pseudo_membre."' and Passe='".$passe_membre."'");
 
		// REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE
		header("Location:".$pagelogged."?id=".$id);
		}	
 
	// DECONNEXION MYSQL
	deconnexion();
	}
?>

FONCTIONS.PHP :
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
<?php
 
/*-
AFFICHAGE DES ERREURS DE CONNEXION
*/
 
function erreur( $message )
 {
 echo $message ;
 exit ;
 }
 
 
/*
CONNEXION A LA BASE DE DONNEES
*/
 
function connexion()
{
  // connexion au serveur de données
  @mysql_connect( _HOST_ , _USER_ , _PWD_ ) or erreur( 'Connexion au serveur de données impossible' ) ;
 
  // sélection de la base de données
  @mysql_select_db( _DB_ ) or erreur( 'Sélection de la base de donnée impossible' ) ;
}
 
 
/*
DECONNEXION A LA BASE DE DONNEES
*/
 
function deconnexion()
{
 @mysql_close();
}
 
 
/*
EXECUTION D'UNE REQUETE
*/
 
 function requete( $requete )
 {
 if($resultat = mysql_query( $requete )) return $resultat ;
 erreur( "Erreur dans la requête : $requete<br>" . mysql_error() ) ;
 }
 
 
/*
FONCTION DE DESACTIVATION DU CACHE DU NAVIGATEUR
*/
 
function no_cache() {
  header("Pragma: no-cache");
  header("Cache-Control: no-cache");
}
 
?>

VARIABLES.PHP
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
<?php
 
/*
CONNEXION A LA BASE DE DONNEE
*/
 
define("_HOST_", "***");
define("_USER_", "***");
define("_PWD_", "***");
define ("_DB_", "***"); 
define ("_TABLE_", "phplogin"); // nom de la table utilisée
 
 
/*
VARIABLES
*/
$validitesession = 3600; // durée de validité de la session
$pagelogin = 'login.html'; // page de login et de sortie
$pagelogged = 'redir.php'; // page suivant la connexion
?>
SECU.PHP :
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
<?php
include('fonctions.php');
include('variables.php');
no_cache();
 
// CONNEXION MYSQL
connexion();
 
// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=requete("select * from "._TABLE_." where CodeTemporaire='".$id."' and Date>NOW()");
 
// SI L'ID N'EXISTE PAS
if(mysql_num_rows($requete)==0)
	{
	// REDIRECTION PAGE ERREUR
	requete("UPDATE "._TABLE_." set CodeTemporaire=NULL, Date=NOW()-10000");
	header("Location:".$pagelogin);
	exit;
	}
 
// LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
$pseudo=mysql_result($requete,0,"Pseudo");
 
 
// DECONNEXION MYSQL	
deconnexion();
?>

REDIR.PHP :
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
<?php
include('secu.php');
?>
 
<html>
<head>
<title> ****** </title>
</head>
 
<body bgcolor="#FFFFFF">
 
<?php
echo "Pseudo : ".$pseudo;
echo "<br>Id de session : ".$id;
echo "<br>Exemple de lien : &lt;a href=\"page.php?id=".$id."\"&gt;lien&lt;/a&gt;";
echo "<br>Déconnexion : <a href=\"login.php?login=1&id=".$id."\">Partir d'ici</a>";
 
?>
 
</body>
</html>
Voila pour les pages concernées ...

Mon problème est le suivant : lorsque je saisis le pseudo et mdp unique sur la page login.html, apres validation, je retourne sur la même page (voir fichier "variables") comme si il ne prenait pas en compte le login et mdp comme étant valides ... alors que normalement il devrait m'envoyer sur la page "redir.php" au lieu de "login.html"

Si une âme généreuse voit ou est le problème, je lui en serais très reconnaissant ...

Merci d'avance à ceux qui suivront et posteront dans ce topic.