Problème de connection espace membre - PHP  

Forum > PHP > Problème de connection espace membre

Problème de connection espace membre

Membre
# Le 14/12/2013 à 17h24
Bonjour
La connection à l’espace membre de mon site tourne en boucle sur la redirection.Espace membre

Je n'arrive plus à trouver d'ou peut venir le problème. Il fonctionne parfaitement en local avec Wamp.
Le module d'inscription fonctionne, la base SQL s'enregistre bien.
J'ai l'impression que ma page de connection ne tien pas compte du script PHP.

Si quelqu'un a une idée.
Merci d'avance.

Romain
avatar de Tony_
Administrateur
# Le 14/12/2013 à 19h29
Bonjour.
Pour vous aider il nous faudrait connaître votre code PHP. Merci d'avance de le partager.
Cordialement,
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
Membre
# Le 14/12/2013 à 20h01
Bonjour Tony.

Ci dessous les parties de code qui influent sur la connection des membres.

L'index.php


  1. <?php session_start();
  2. $connect = 'config.php';
  3. if(!file_exists($connect)) {
  4. header('Location: install/');
  5. }
  6. include('header.php');
  7. if(!empty($_POST['connect'])) {
  8. if(!Connexion::connexionCreate()) {
  9. echo '<div class="redirect">
  10. <img src="'.URLSITE.'/espacemembre/design/img/redirect.gif" width="140" height="18">
  11. <h3>Redirection en cours, patientez ...</h3></div>';
  12. redirection(URLSITE.'/espacemembre/index.php', $time=10);
  13. }
  14. }
  15. else {
  16. $captcha = new Captcha;
  17. echo '<div class="connect">
  18. <h2>Connectez-vous</h2>
  19. <p>Entrez vos identifiants pour acc&eacute;der &agrave; votre espace</p>
  20. <form action="" method="post">
  21. <div class="clear"><div class="label">Identifiant : </div><div class="input-box"><input class="input" type="text" name="login" /></div></div>
  22. <div class="clear"><div class="label">Mot de passe :</div><div class="input-box" ><input class="input" type="password" name="pass" /></div></div>
  23. <div class="clear"><div class="label">'.$captcha->captcha().'</div><div class="input-box" ><input class="input" type="text" name="captcha" /></div></div>
  24. <div class="clear"><div class="input-box" ><input type="submit" name="connect" value="Se Connecter" class="button" /></div></div>
  25. </form>
  26. <div class="clear"><a class="new" href="inscription.php">creer un compte</a><a href="new_passe.php">Mot de passe oubli&eacute;</a></div>
  27. </div>';
  28. }
  29.  
  30. ?>
  31.  



Header.php



  1. <?php
  2. include('function.php');
  3. echo '<!DOCTYPE HTML>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <title>Espace Membre Repair Bike</title>
  8. <link href="'.URLSITE.'/espacemembre/design/black-style.css" rel="stylesheet" type="text/css" media="screen">
  9. </head>
  10. <body>';
  11. ?>



Connection SQL



  1. <?php
  2. include('define.php');
  3.  
  4. // La fonction de redirection de base
  5. function redirection($url, $time=0) {
  6. if (!headers_sent()) {
  7. header("refresh: $time;url=$url");
  8. exit;
  9. }
  10. else {
  11. echo '<meta http-equiv="refresh" content="',$time,';url=',$url,'">';
  12. }
  13. }
  14.  
  15. // La classe de connexion a la bdd
  16. class Bdd {
  17. private static $connexion = null;
  18.  
  19. public static function connectBdd() {
  20. if(!self::$connexion) {
  21. self::$connexion = new PDO(DNS, USER, PASS);
  22. self::$connexion -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  23. }
  24. return self::$connexion;
  25. }
  26.  
  27. } // Fin de la classe de connexion a la bdd


Fonction.php #connection#



  1.  
  2.  
  3. // La classe connexion membre
  4. class Connexion {
  5.  
  6. // fonction de deconnexion
  7.  
  8. public static function deconnexion($redirection) {
  9. $_SESSION = array();
  10. session_destroy();
  11. if(!empty($redirection)) {
  12. redirection(URLSITE.'/'.$redirection);
  13. }
  14. }
  15. // mot de passe oublier
  16.  
  17. public static function passOubli($email) {
  18. if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
  19. $verifMail = Bdd::connectBdd()->prepare(SELECT.ALL.MEMBRE.EMAIL);
  20. $verifMail -> bindParam(':email', $email);
  21. $verifMail -> execute();
  22. if($verifMail -> rowCount() !== 1) {
  23. $donnee = $verifMail -> fetch(PDO::FETCH_ASSOC);
  24. $newPass = Cryptage::chaine(8);
  25. $cryptPass = Cryptage::crypter($newPass);
  26. $enregistrePass = Bdd::connectBdd()->prepare(UPDATE.MEMBREZ.MAJPASS.EMAIL);
  27. $enregistrePass -> bindParam(':newPass', $cryptPass);
  28. $enregistrePass -> bindParam(':email', $email);
  29. $enregistrePass -> execute();
  30. // ************************* //
  31. $headers ='From: "'.$donnee['nom'].' '.$donnee['prenom'].'"'.$email.''."
  32. ";
  33. $headers .='Reply-To: '.MAILSITE.''."
  34. ";
  35. $headers .='Content-Type: text/plain; charset="iso-8859-1"'."
  36. ";
  37. $headers .='Content-Transfer-Encoding: 8bit';
  38. $sujet = "Nouveau mot de passe pour ".RepairBike;
  39. $message = 'Bonjour '.$donnee['pseudo'].','."
  40.  
  41. ";
  42. $message .= "Voici votre nouveau mot de passe : ".$newPass."
  43.  
  44. ";
  45. $message .= 'Cordialement,'."
  46. ";
  47. $message .= NOM_SITE.'.'."
  48. ";
  49. if(mail(MAIL_SITE, $sujet, $message, $headers)) {
  50. return 'Un nouveau mot de passe viens de vous &ecirc;tre envoy&eacute;,<br />pensez &agrave; v&eacute;rifiez vos spams.';
  51. }
  52. else {
  53. return '<span class="error-info">"Erreur lors de l'envoie de votre mot de passe.</span>';
  54. }
  55. }
  56. else {
  57. return '<span class="error-info">L'adresse email '.$email.' n'existe pas,<br />veuillez en saisir une autre et recommencer.</span>';
  58. }
  59. }
  60. else {
  61. return '<span class="error-info">L'adresse email saisi n'est pas valide.</span>';
  62. }
  63. }
  64. // fonction de connexion des membres
  65.  
  66. public static function connexionCreate() {
  67. if(Captcha::captchaVerif() AND !empty($_POST['login']) AND !empty($_POST['pass'])) {
  68. if(Connexion::verifLogin($_POST['login'])) {
  69. if(Connexion::verifPass($_POST['pass'], $_POST['login'])) {
  70. $_SESSION['id'] = Membre::recupId($_POST['login']);
  71. $_SESSION['jeton'] = Connexion::jeton($_POST['login']);
  72. Connexion::niveau($_POST['login']);
  73. }
  74. else {
  75. return false;
  76. }
  77. }
  78. else {
  79. return false;
  80. }
  81. }
  82. else {
  83. return false;
  84. }
  85. }
  86. // Fonction de verification que l'identifiant existe dans la bdd
  87. public static function verifLogin($login) {
  88. $resultat = Bdd::connectBdd()->prepare(SELECT.ALL.MEMBRE.LOGIN);
  89. $resultat -> bindParam(':login', $login, PDO::PARAM_STR, 50);
  90. $resultat -> execute();
  91. if($resultat -> rowCount() === 1) {
  92. return true;
  93. }
  94. else {
  95. return false;
  96. }
  97. }
  98. // Function de verification du mot de passe
  99. public static function verifPass($pass, $login) {
  100. $resultat = Bdd::connectBdd()->prepare(SELECT.ALL.MEMBRE.LOGIN);
  101. $resultat -> bindParam(':login', $login, PDO::PARAM_STR, 50);
  102. $resultat -> execute();
  103. $donnee = $resultat -> fetch(PDO::FETCH_ASSOC);
  104. if(Cryptage::crypter($pass) === $donnee['password']) {
  105. return true;
  106. }
  107. else {
  108. return false;
  109. }
  110. }
  111. // La fonction de gestion des jetons de connexion lors de la connexion d'un membre
  112.  
  113. public static function jeton($login) {
  114. $id = Membre::recupId($login);
  115. $ip = Ip::get_ip();
  116. $date = time();
  117. $resultat = Bdd::connectBdd()->prepare(SELECT.ALL.JETON.JETONCONNEXION);
  118. $resultat -> bindParam(':id', $id, PDO::PARAM_INT, 11);
  119. $resultat -> bindParam(':ip', $ip);
  120. $resultat -> execute();
  121. if($resultat -> rowCount() === 1) {
  122. $donnee = $resultat->fetch(PDO::FETCH_ASSOC);
  123. $id = Membre::recupId($login);
  124. $maj = Bdd::connectBdd()->prepare(UPDATE.JETONZ.JETONDATE.JETONMEMBRE);
  125. $maj -> bindParam(':id', $id);
  126. $maj -> bindParam(':date', $date);
  127. $maj -> execute();
  128. return $donnee['jeton'];
  129. }
  130. else {
  131. $jeton = Cryptage::crypter(Cryptage::chaine(10));
  132. $insert = Bdd::connectBdd()->prepare(INSERT.JETONZ.JETONVALUES);
  133. $insert -> bindParam(':id', $id) ;
  134. $insert -> bindParam(':jeton', $jeton) ;
  135. $insert -> bindParam(':ip', $ip);
  136. $insert -> bindParam(':date', $date);
  137. $insert -> execute();
  138. return $jeton;
  139. }
  140. }
  141. // Fonction de recuperation du niveau du membre
  142.  
  143. public static function niveau($login) {
  144. $resultat = Bdd::connectBdd()->prepare(SELECT.ALL.MEMBRE.LOGIN);
  145. $resultat -> bindParam(':login', $login, PDO::PARAM_STR, 50);
  146. $resultat -> execute();
  147. $donnee = $resultat->fetch(PDO::FETCH_ASSOC);
  148. if($donnee['activation'] === '1') {
  149. switch($donnee['niveau']) {
  150. case 1 :
  151. $_SESSION['niveau'] = '1';
  152. $redirect = redirection(URLSITE.'/espacemembre/membre/index.php');
  153. break;
  154.  
  155. case 2 :
  156. $_SESSION['niveau'] = '2';
  157. $redirect = redirection(URLSITE.'/espacemembre/moderateur/index.php');
  158. break;
  159.  
  160. case 3 :
  161. $_SESSION['niveau'] = '3';
  162. $redirect = redirection(URLSITE.'/espacemembre/administrateur/index.php');
  163. break;
  164. }
  165. }
  166. elseif($donnee['activation'] === '5') {
  167.  
  168. $redirect = redirection(URLSITE.'/espacemembre/banni.php');
  169. }
  170. else {
  171. $activation = Bdd::connectBdd()->prepare(SELECT.ALL.ACTIVATION.METHODEACTIV);
  172. $activation -> execute();
  173. $methode = $activation->fetch(PDO::FETCH_ASSOC);
  174. switch($methode['id']) {
  175. case 1 :
  176. Activation::activationAuto($login);
  177. return Connexion::niveau($login);
  178. break;
  179.  
  180. case 2 :
  181. Activation::activationMail($login);
  182. $redirect = redirection(URLSITE.'/espacemembre/activationMail.php');
  183. break;
  184.  
  185. case 3 :
  186. $redirect = redirection(URLSITE.'/espacemembre/activationAdmin.php');
  187. break;
  188. }
  189. }
  190. return $redirect;
  191. }
  192.  
  193. } // Fin de la classe de connexion membre