elabadiabdelmoula | salut tout le monde, svp j'ai besoin d'aide:
j'ai crée sur mon site web un espace membres: les utilisateurs doivent s'inscrire tout d'abord, puis se connecter pour pouvoir consulter ma base & y modifier les données...
le probleme est que, j'ai testé & j'ai trouvé qu'on peut se connecter sans donner le bon login & mot de pase! pire on se connecte sans meme introduire rien (ni non utilisateur ni mot de passe)...
je vous donne les codes des mes pages pour m'aider à y trouver l'erreur & rectifier ce probleme...
1ère page: membres.php:
Code :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
- <head>
- <title>membres</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- </head>
- <body>
- </br>
- </br>
- <p><center><font size="+2" color="#0000FF">Cette page est réservée EXCLUSIVEMENT au personnel de la TRF tozeur.</font></center></p>
- </br>
- </br>
- </br>
- <center><h2>Déjà inscrit:<br />
- <a href = "connexion.php">Connectez-vous ici:</a></h2></center>
- </br>
- </br>
- </br>
- <center><h2>Nouveau membre:<br />
- <a href="inscription.php">inscrivez-vous ici:</a></h2></center>
- <p>
- <br />
- <br />
- <br />
- <center>
- <a href="index.html"><h2 color="red">Retour à l'index</h2></a>
- <br />
- <br />
- <br />
- <a href="visiteur.html"><h2 color="green">Visiteur</h2></a>
- </center>
- </p>
- </body>
- </html>
|
2ème page: inscription.php:
Code :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
- <head>
- <title>inscription</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- </head>
- <body>
- <?php
- // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
- header('Content-type: text/html; charset=UTF-8');
- /* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
- Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
- function Verif_magicquotes ($chaine)
- {
- if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
- return $chaine;
- }
- // Initialisation du message de réponse
- $message = null;
- // Si le formulaire est envoyé
- if (isset($_POST['cnrps']))
- {
- /* Récupération des variables issues du formulaire
- Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
- (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
- En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
- $cnrps = (isset($_POST['cnrps']) && trim($_POST['cnrps']) != '')? Verif_magicquotes($_POST['cnrps']) : null;
- $pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['pass']) : null;
-
- // Si $cnrps et $pass différents de null
- if(isset($cnrps,$pass))
- {
- /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
- A MODIFIER avec vos valeurs */
- $hostname = "HOST";
- $database = "DATABASE";
- $username = "ROOT";
- $password = "XXXXX";
-
- $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
- // Connexion à la base
- mysql_select_db($database, $connection);
-
- // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
- mysql_query("SET NAMES 'utf8'" );
-
- // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
- $nom = mysql_real_escape_string($cnrps);
- $password = mysql_real_escape_string(sha1($pass));
-
-
- // Requête pour compter le nombre d'enregistrements répondant à la clause : champ du cnrps de la table = cnrps posté dans le formulaire
- $requete = "SELECT count(*) as nb FROM membres WHERE cnrps = '".$nom."'";
-
- // Exécution de la requête
- $req_exec = mysql_query($requete) or die(mysql_error());
-
- // Création du tableau associatif du résultat
- $resultat = mysql_fetch_assoc($req_exec);
-
- // nb est le nom de l'allias associé à count(*) et retourne le résultat de la requête dans le tableau $resultat;
- if (isset($resultat['nb']) && $resultat['nb'] == 0)
- // Résultat du comptage = 0 pour ce cnrps, on peut donc l'enregistrer
- {
- // Pour enregistrer la date actuelle (date/heure/minutes/secondes) on peut utiliser directement la fonction mysql : NOW()
- $insertion = "INSERT INTO membres(cnrps,pass,date) VALUES('".$nom."', '".$password."', NOW())";
-
- // Exécution de la requête d'insertion
- $inser_exec = mysql_query($insertion) or die(mysql_error());
-
- /* Si l'insertion s'est faite correctement (une requête d'insertion retourne "true" en cas de succès, je peux donc utiliser
- l'opérateur de comparaison strict '===' c.f. http://fr.php.net/manual/fr/language.op ... arison.php) */
- if ($inser_exec === true)
- {
- /* Démarre la session et enregistre le cnrps dans la variable de session $_SESSION['login']
- qui donne au visiteur la possibilité de se connecter. */
- session_start();
- $_SESSION['login'] = $cnrps;
-
- // A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.
- $message = 'Votre inscription est enregistrée. <a href = "connexion.php">Cliquez ici pour vous connecter</a>';
- }
- }
- else
- { // Le cnrps est déjà utilisé
- $message = 'Ce identifiant unique est déjà utilisé, changez-le.';
- }
- }
- else
- { // Au moins un des deux champs "cnrps" ou "mot de passe" n'a pas été rempli
- $message = 'Les champs "identifiant unique" et "Mot de passe" doivent être remplis.';
- }
- }
- ?>
- <br />
- <center><h2>Nouveau membre: <br />
- Inscrivez-vous ici:</h2></center>
- <br />
- <style type="text/css">
- <!--
- body, p, h1,form, input {
- margin:0;
- padding:0;
- }
- body {
- background-color:#CCFFFF
- }
- #inscription {
- width:420px;
- background:#99CCFF;
- margin:20px auto;
- font-family: Arial, Helvetica, sans-serif;
- font-size:1em;
- border:2px solid #333333;
- }
- #inscription h1 {
- text-align:center;
- font-size:1.2em;
- background:#333333;
- padding-bottom:5px;
- margin-bottom:15px;
- color:#00FFFF;
- letter-spacing:0.05em;
- }
- #inscription p {
- padding-top:15px;
- padding-right:50px;
- text-align:center;
- }
- #inscription input {
- margin-left:30px;
- width:150px;
- }
- #inscription #valider {
- width:155px;
- font-size:0.8em;
- }
- #inscription #message {
- height:27px;
- font-size:0.7em;
- font-weight:bold;
- text-align:center;
- padding:10px 0 0 0;
- }
- -->
- </style>
- <body>
- <center>
- <div id = "inscription">
- <form action = "inscription.php" method = "post">
- <h1>INSCRIPTION</h1>
- <p><label for = "cnrps">Votre Identifiant unique :</label><input type = "text" name = "cnrps" id = "cnrps" /></p>
- <p><label for = "pass">Votre mot de passe :</label><input type = "password" name = "pass" id = "pass" /></p>
- <p><label for = "confpass">Confirmer le mot de passe :</label><input type = "password" name = "confpass" id = "confpass" /></p>
- <p><input type = "submit" value = "Envoyer" id = "valider" /></p>
- </form>
- <p id = "message">
- <?php if(isset($message)) echo $message ?></p>
- </div>
- </center>
- <p>
- <br />
- <br />
- <br />
- <center>
- <a href="index.html"><h2 color="red">Retour à l'index</h2></a>
- <br />
- <br />
- <br />
- <a href="visiteur.html"><h2 color="green">Visiteur</h2></a>
- </center>
- </p>
- </body>
- </html>
|
3ème page: connexion.php:
Code :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>Connexion</title>
- <br />
- <center><h2>Déjà inscrit:<br />
- Connectez-vous ici:</h2></center>
- <br />
- <?php
- // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
- header('Content-type: text/html; charset=UTF-8');
- /* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
- Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
- function Verif_magicquotes ($chaine)
- {
- if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
- return $chaine;
- }
- // Initialisation du message de réponse
- $message = null;
- // Si le formulaire est envoyé
- if (isset($_POST['cnrps']))
- {
- /* Récupération des variables issues du formulaire
- Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
- (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
- En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
- $cnrps = (isset($_POST['cnrps']) && trim($_POST['cnrps']) != '')? Verif_magicquotes($_POST['cnrps']) : null;
- $pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['pass']) : null;
-
- // Si $cnrps et $pass différents de null
- if(isset($cnrps,$pass))
- {
- /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
- A MODIFIER avec vos valeurs */
- $hostname = "HOST";
- $database = "DATABASE";
- $username = "ROOT";
- $password = "XXXXX";
-
- $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
- // Connexion à la base
- mysql_select_db($database, $connection);
-
- // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
- mysql_query("SET NAMES 'utf8'" );
-
- // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
- $nom = mysql_real_escape_string($cnrps);
- $password = mysql_real_escape_string(sha1($pass));
-
-
- /* Requête pour récupérer les enregistrements répondant à la clause :
- champ du cnrps et champ du mdp de la table = cnrps et mdp postés dans le formulaire*/
- $requete = "SELECT * FROM membres WHERE cnrps = '".$nom."' AND pass = '".$password."'";
-
- // Exécution de la requête
- $req_exec = mysql_query($requete) or die(mysql_error());
-
- // Création du tableau associatif du résultat
- $resultat = mysql_fetch_assoc($req_exec);
- // Les valeurs (si elles existent) sont retournées dans le tableau $resultat;
- if (isset($resultat['cnrps'],$resultat['pass']))
- {
- /* Démarre la session et enregistre le cnrps dans la variable de session $_SESSION['login']
- qui donne au visiteur la possibilité de visiter les pages protégées. */
- session_start();
- $_SESSION['login'] = $cnrps;
-
- // A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.
- $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).' <a href = "gestion.php">Cliquez ici pour vous connecter</a>';
- }
- else
- { // Le cnrps ou le mot de passe sont incorrect
- $message = 'Le cnrps ou le mot de passe sont incorrect';
- }
- }
- else
- { //au moins un des deux champs "cnrps" ou "mot de passe" n'a pas été rempli
- $message = 'Les champs cnrps et Mot de passe doivent être remplis.';
- }
- }
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>connexion</title>
- <style type="text/css">
- <!--
- body, p, h1,form, input {
- margin:0;
- padding:0;
- }
- body {
- background-color:#CCFFFF
- }
- #connexion {
- width:420px;
- background:#99CCFF;
- margin:20px auto;
- font-family: Arial, Helvetica, sans-serif;
- font-size:1em;
- border:2px solid #333333;
- }
- #connexion h1 {
- text-align:center;
- font-size:1.2em;
- background:#333333;
- padding-bottom:5px;
- margin-bottom:15px;
- color:#00FFFF;
- letter-spacing:0.05em;
- }
- #connexion p {
- padding-top:15px;
- padding-right:50px;
- text-align:center;
- }
- #connexion input {
- margin-left:30px;
- width:150px;
- }
- #connexion #valider {
- width:155px;
- font-size:0.8em;
- }
- #connexion #message {
- height:27px;
- font-size:0.7em;
- font-weight:bold;
- text-align:center;
- padding:10px 0 0 0;
- }
- -->
- </style>
- <div id = "connexion">
- <form action = "gestion.html" method = "post">
- <h1>connexion</h1>
- <p><label for = "cnrps">identifiant unique :</label><input type = "text" name = "cnrps" id = "cnrps" /></p>
- <p><label for = "pass">Mot de passe :</label><input type = "password" name = "pass" id = "pass" /></p>
- <p><input type = "submit" value = "Envoyer" id = "valider" /></p>
- </form>
- <p id = "message"><?php if(isset($message)) echo $message ?></p>
- </div>
- <p>
- <br />
- <br />
- <br />
- <center>
- <a href="index.html"><h2 color="red">Retour à l'index</h2></a>
- <br />
- <br />
- <br />
- <a href="visiteur.html"><h2 color="green">Visiteur</h2></a>
- </center>
- </p>
- </html>
|
|