Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
687 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  se connecter à la base sans des bons login & password

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

se connecter à la base sans des bons login & password

n°2178628
elabadiabd​elmoula
Posté le 04-03-2013 à 16:15:20  profilanswer
 

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 :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3.     <head>
  4.         <title>membres</title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6.     </head>
  7.     <body>   
  8.         </br>
  9.         </br>
  10.         <p><center><font size="+2" color="#0000FF">Cette page est réservée EXCLUSIVEMENT au personnel de la TRF tozeur.</font></center></p>
  11.         </br>
  12.         </br>
  13.         </br>
  14. <center><h2>Déjà inscrit:<br />
  15. <a href = "connexion.php">Connectez-vous ici:</a></h2></center>
  16.         </br>
  17.         </br>
  18.         </br>
  19. <center><h2>Nouveau membre:<br />
  20. <a href="inscription.php">inscrivez-vous ici:</a></h2></center>
  21. <p>
  22. <br />
  23. <br />
  24. <br />
  25. <center>
  26. <a href="index.html"><h2 color="red">Retour à l'index</h2></a>
  27. <br />
  28. <br />
  29. <br />
  30. <a href="visiteur.html"><h2 color="green">Visiteur</h2></a>
  31. </center>
  32. </p>
  33. </body>
  34. </html>


2ème page: inscription.php:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3.     <head>
  4.         <title>inscription</title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6.     </head>
  7.     <body>
  8.         <?php
  9. // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
  10. header('Content-type: text/html; charset=UTF-8');
  11. /* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
  12. Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
  13. function Verif_magicquotes ($chaine)
  14. {
  15. if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
  16. return $chaine;
  17. }
  18. // Initialisation du message de réponse
  19. $message = null;
  20. // Si le formulaire est envoyé
  21. if (isset($_POST['cnrps']))
  22. {
  23.     /* Récupération des variables issues du formulaire
  24.     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.
  25.     (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
  26.     En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
  27.     $cnrps = (isset($_POST['cnrps']) && trim($_POST['cnrps']) != '')? Verif_magicquotes($_POST['cnrps']) : null;
  28.     $pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['pass']) : null;
  29.    
  30.     // Si $cnrps et $pass différents de null
  31.     if(isset($cnrps,$pass))
  32.     {
  33.          /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
  34.          A MODIFIER avec vos valeurs */
  35.          $hostname = "HOST";
  36.          $database = "DATABASE";
  37.          $username = "ROOT";
  38.          $password = "XXXXX";
  39.    
  40.          $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
  41.          // Connexion à la base
  42.          mysql_select_db($database, $connection);
  43.    
  44.          // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
  45.          mysql_query("SET NAMES 'utf8'" );
  46.    
  47.          // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
  48.          $nom = mysql_real_escape_string($cnrps);
  49.          $password = mysql_real_escape_string(sha1($pass));
  50.    
  51.    
  52.          // Requête pour compter le nombre d'enregistrements répondant à la clause : champ du cnrps de la table = cnrps posté dans le formulaire
  53.          $requete = "SELECT count(*) as nb FROM membres WHERE cnrps = '".$nom."'";
  54.    
  55.          // Exécution de la requête
  56.          $req_exec = mysql_query($requete) or die(mysql_error());
  57.    
  58.          // Création du tableau associatif du résultat
  59.          $resultat = mysql_fetch_assoc($req_exec);
  60.    
  61.          // nb est le nom de l'allias associé à count(*) et retourne le résultat de la requête dans le tableau $resultat;
  62.          if (isset($resultat['nb']) && $resultat['nb'] == 0)
  63.          // Résultat du comptage = 0 pour ce cnrps, on peut donc l'enregistrer
  64.          {
  65.              // Pour enregistrer la date actuelle (date/heure/minutes/secondes) on peut utiliser directement la fonction mysql : NOW()
  66.              $insertion = "INSERT INTO membres(cnrps,pass,date) VALUES('".$nom."', '".$password."', NOW())";
  67.          
  68.              // Exécution de la requête d'insertion
  69.              $inser_exec = mysql_query($insertion) or die(mysql_error());
  70.        
  71.              /* Si l'insertion s'est faite correctement (une requête d'insertion retourne "true" en cas de succès, je peux donc utiliser
  72.              l'opérateur de comparaison strict '==='  c.f. http://fr.php.net/manual/fr/language.op ... arison.php) */
  73.              if ($inser_exec === true)
  74.              {
  75.                  /* Démarre la session et enregistre le cnrps dans la variable de session $_SESSION['login']
  76.                  qui donne au visiteur la possibilité de se connecter.  */
  77.                  session_start();
  78.                  $_SESSION['login'] = $cnrps;
  79.            
  80.                  // A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.
  81.                  $message = 'Votre inscription est enregistrée. <a href = "connexion.php">Cliquez ici pour vous connecter</a>';
  82.              } 
  83.          }
  84.          else
  85.          {   // Le cnrps est déjà utilisé
  86.              $message = 'Ce identifiant unique est déjà utilisé, changez-le.';
  87.          }
  88.     }
  89.     else
  90.     {    // Au moins un des deux champs "cnrps" ou "mot de passe" n'a pas été rempli
  91.          $message = 'Les champs "identifiant unique" et "Mot de passe" doivent être remplis.';
  92.     }
  93. }
  94. ?>
  95. <br />
  96. <center><h2>Nouveau membre: <br />
  97. Inscrivez-vous ici:</h2></center>
  98. <br />
  99. <style type="text/css">
  100. <!--
  101. body, p, h1,form, input {
  102. margin:0;
  103. padding:0;
  104. }
  105. body {
  106. background-color:#CCFFFF
  107. }
  108. #inscription {
  109. width:420px;
  110. background:#99CCFF;
  111. margin:20px auto;
  112. font-family: Arial, Helvetica, sans-serif;
  113. font-size:1em;
  114. border:2px solid #333333;
  115. }
  116. #inscription h1 {
  117. text-align:center;
  118. font-size:1.2em;
  119. background:#333333;
  120. padding-bottom:5px;
  121. margin-bottom:15px;
  122. color:#00FFFF;
  123. letter-spacing:0.05em;
  124. }
  125. #inscription p {
  126. padding-top:15px;
  127. padding-right:50px;
  128. text-align:center;
  129. }
  130. #inscription input {
  131. margin-left:30px;
  132. width:150px;
  133. }
  134. #inscription #valider {
  135. width:155px;
  136. font-size:0.8em;
  137. }
  138. #inscription #message {
  139. height:27px;
  140. font-size:0.7em;
  141. font-weight:bold;
  142. text-align:center;
  143. padding:10px 0 0 0;
  144. }
  145. -->
  146. </style>
  147. <body>
  148. <center>
  149. <div id = "inscription">
  150.     <form action = "inscription.php" method = "post">
  151.     <h1>INSCRIPTION</h1>
  152.     <p><label for = "cnrps">Votre Identifiant unique :</label><input type = "text" name = "cnrps" id = "cnrps" /></p>
  153.     <p><label for = "pass">Votre mot de passe :</label><input type = "password" name = "pass" id = "pass" /></p>
  154.     <p><label for = "confpass">Confirmer le mot de passe :</label><input type = "password" name = "confpass" id = "confpass" /></p>
  155.     <p><input type = "submit" value = "Envoyer" id = "valider" /></p>
  156.     </form>
  157.     <p id = "message">
  158.     <?php if(isset($message)) echo $message ?></p>
  159. </div>
  160. </center>
  161. <p>
  162. <br />
  163. <br />
  164. <br />
  165. <center>
  166. <a href="index.html"><h2 color="red">Retour à l'index</h2></a>
  167. <br />
  168. <br />
  169. <br />
  170. <a href="visiteur.html"><h2 color="green">Visiteur</h2></a>
  171. </center>
  172. </p>
  173. </body>
  174. </html>


3ème page: connexion.php:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>Connexion</title>
  6. <br />
  7. <center><h2>Déjà inscrit:<br />
  8. Connectez-vous ici:</h2></center>
  9. <br />
  10. <?php
  11. // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
  12. header('Content-type: text/html; charset=UTF-8');
  13. /* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
  14. Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
  15. function Verif_magicquotes ($chaine)
  16. {
  17. if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
  18. return $chaine;
  19. }
  20. // Initialisation du message de réponse
  21. $message = null;
  22. // Si le formulaire est envoyé
  23. if (isset($_POST['cnrps']))
  24. {
  25.     /* Récupération des variables issues du formulaire
  26.     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.
  27.     (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
  28.     En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
  29.     $cnrps = (isset($_POST['cnrps']) && trim($_POST['cnrps']) != '')? Verif_magicquotes($_POST['cnrps']) : null;
  30.     $pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['pass']) : null;
  31.    
  32.     // Si $cnrps et $pass différents de null
  33.     if(isset($cnrps,$pass))
  34.     {
  35.          /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
  36.          A MODIFIER avec vos valeurs */
  37.          $hostname = "HOST";
  38.          $database = "DATABASE";
  39.          $username = "ROOT";
  40.          $password = "XXXXX";
  41.    
  42.          $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
  43.          // Connexion à la base
  44.          mysql_select_db($database, $connection);
  45.    
  46.          // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
  47.          mysql_query("SET NAMES 'utf8'" );
  48.    
  49.          // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
  50.          $nom = mysql_real_escape_string($cnrps);
  51.          $password = mysql_real_escape_string(sha1($pass));
  52.    
  53.    
  54.          /* Requête pour récupérer les enregistrements répondant à la clause :
  55.          champ du cnrps et champ du mdp de la table = cnrps et mdp postés dans le formulaire*/
  56.         $requete = "SELECT * FROM membres WHERE cnrps = '".$nom."' AND pass = '".$password."'";
  57.    
  58.          // Exécution de la requête
  59.          $req_exec = mysql_query($requete) or die(mysql_error());
  60.    
  61.          // Création du tableau associatif du résultat
  62.          $resultat = mysql_fetch_assoc($req_exec);
  63.          // Les valeurs (si elles existent) sont retournées dans le tableau $resultat;
  64.          if (isset($resultat['cnrps'],$resultat['pass']))
  65.                {
  66.                  /* Démarre la session et enregistre le cnrps dans la variable de session $_SESSION['login']
  67.                  qui donne au visiteur la possibilité de visiter les pages protégées.  */
  68.                  session_start();
  69.                  $_SESSION['login'] = $cnrps;
  70.            
  71.                  // A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.
  72.                  $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).' <a href = "gestion.php">Cliquez ici pour vous connecter</a>';
  73.                 }
  74.                 else
  75.                 {   // Le cnrps ou le mot de passe sont incorrect
  76.                 $message = 'Le cnrps ou le mot de passe sont incorrect';
  77.                 }
  78.     }
  79.     else
  80.     {  //au moins un des deux champs "cnrps" ou "mot de passe" n'a pas été rempli
  81.     $message = 'Les champs cnrps et Mot de passe doivent être remplis.';
  82.     }
  83. }
  84. ?>
  85. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  86. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head>
  87. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  88. <title>connexion</title>
  89. <style type="text/css">
  90. <!--
  91. body, p, h1,form, input {
  92. margin:0;
  93. padding:0;
  94. }
  95. body {
  96. background-color:#CCFFFF
  97. }
  98. #connexion {
  99. width:420px;
  100. background:#99CCFF;
  101. margin:20px auto;
  102. font-family: Arial, Helvetica, sans-serif;
  103. font-size:1em;
  104. border:2px solid #333333;
  105. }
  106. #connexion h1 {
  107. text-align:center;
  108. font-size:1.2em;
  109. background:#333333;
  110. padding-bottom:5px;
  111. margin-bottom:15px;
  112. color:#00FFFF;
  113. letter-spacing:0.05em;
  114. }
  115. #connexion p {
  116. padding-top:15px;
  117. padding-right:50px;
  118. text-align:center;
  119. }
  120. #connexion input {
  121. margin-left:30px;
  122. width:150px;
  123. }
  124. #connexion #valider {
  125. width:155px;
  126. font-size:0.8em;
  127. }
  128. #connexion #message {
  129. height:27px;
  130. font-size:0.7em;
  131. font-weight:bold;
  132. text-align:center;
  133. padding:10px 0 0 0;
  134. }
  135. -->
  136. </style>
  137. <div id = "connexion">
  138.     <form action = "gestion.html" method = "post">
  139.     <h1>connexion</h1>
  140.     <p><label for = "cnrps">identifiant unique :</label><input type = "text" name = "cnrps" id = "cnrps" /></p>
  141.     <p><label for = "pass">Mot de passe :</label><input type = "password" name = "pass" id = "pass" /></p>
  142.     <p><input type = "submit" value = "Envoyer" id = "valider" /></p>
  143.     </form>
  144.     <p id = "message"><?php if(isset($message)) echo $message ?></p>
  145. </div>
  146. <p>
  147. <br />
  148. <br />
  149. <br />
  150. <center>
  151. <a href="index.html"><h2 color="red">Retour à l'index</h2></a>
  152. <br />
  153. <br />
  154. <br />
  155. <a href="visiteur.html"><h2 color="green">Visiteur</h2></a>
  156. </center>
  157. </p>
  158. </html>

mood
Publicité
Posté le 04-03-2013 à 16:15:20  profilanswer
 

n°2178640
sircam
I Like Trains
Posté le 04-03-2013 à 16:31:16  profilanswer
 

elabadiabdelmoula a écrit :

je vous donne les codes des mes pages pour m'aider à y trouver l'erreur & rectifier ce probleme..


C'est assez indigeste, tu ne crois pas? Pourrais-tu commencer par réduire le problème à sa plus simple expression avant de demander de l'aide?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°2178656
pvclunacy
Posté le 04-03-2013 à 17:10:24  profilanswer
 

[:atlantis] <form action = "gestion.html" method = "post">
 
Ca post pas ton formulaire à gestion.html ça ?

n°2178854
cvb
Posté le 05-03-2013 à 22:33:29  profilanswer
 

Bon...
 
Plusieurs points:
- Utilise la programmation objet
- N'utilise pas le SELECT * (mets les noms des champs que tu recherche)
- Vérifie que tu n'a pas de doublon (tu dois avoir des associations login/password unique)
 
 
Vérifie bien ce que renvoie ton code, et plus particulièrement "résultat" (utilise print_r ou var_dump).  
Tu sauras sans doute s'il vérifie bien ta condition dans ta requête !
 
 

Code :
  1. // Création du tableau associatif du résultat
  2.          $resultat = mysql_fetch_assoc($req_exec)


 
 
++

n°2178941
elabadiabd​elmoula
Posté le 06-03-2013 à 12:03:12  profilanswer
 

merci pour tout
pouvez vous m'aider avec plus de détails? merci infiniment


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  se connecter à la base sans des bons login & password

 

Sujets relatifs
Corriger erreur php: modification de base donnéesconnection à une base Oracle sous java avec JDBC
Générateur de chiffres à la suite d'une formuleMise à jour base de donnée par brute force
Afficher les différents caractère set d'une base oracleProjet d'application, aide base de données
Un petit souci avec la loginFindby Login and password Myeclipse Mysql
Remplir une base MySQL avec une base SQL 
Plus de sujets relatifs à : se connecter à la base sans des bons login & password


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR