Advertisement
Guest User

Untitled

a guest
Jan 15th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.02 KB | None | 0 0
  1. <?php
  2. /* Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)*/
  3. header('Content-type: text/html; charset=UTF-8');
  4.  
  5.  
  6. /* Initialisation de la variable du message de réponse*/
  7. $message = null;
  8.  
  9. /* Récupération des variables issues du formulaire par la méthode post*/
  10. $pseudo = filter_input(INPUT_POST, 'pseudo');
  11. $pass = filter_input(INPUT_POST, 'pass');
  12.  
  13. /* Si le formulaire est envoyé*/
  14. if (isset($pseudo,$pass))
  15. {
  16.  
  17. /* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */
  18. $pseudo = trim($pseudo) != '' ? $pseudo : null;
  19. $pass = trim($pass) != '' ? $pass : null;
  20.  
  21.  
  22. /* Si $pseudo et $pass différents de null */
  23. if(isset($pseudo,$pass))
  24. {
  25. /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
  26. A MODIFIER avec vos valeurs */
  27. $hostname = "localhost";
  28. $database = "quizzy";
  29. $username = "root";
  30. $password = "";
  31.  
  32. /* Configuration des options de connexion */
  33.  
  34. /* Désactive l'éumlateur de requêtes préparées (hautement recommandé) */
  35. $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;
  36.  
  37. /* Active le mode exception */
  38. $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
  39.  
  40. /* Indique le charset */
  41. $pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
  42.  
  43. /* Connexion */
  44. try
  45. {
  46. $connect = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password, $pdo_options);
  47. }
  48. catch (PDOException $e)
  49. {
  50. exit('problème de connexion à la base');
  51. }
  52.  
  53. /* Requête pour récupérer les enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire */
  54. $requete = "SELECT * FROM membres WHERE pseudo = :nom AND pass = :password";
  55.  
  56. try
  57. {
  58. /* Préparation de la requête*/
  59. $req_prep = $connect->prepare($requete);
  60.  
  61. /* Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau*/
  62. $req_prep->execute(array(':nom'=>$pseudo,':password'=>$pass));
  63.  
  64. /* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/
  65. $resultat = $req_prep->fetchAll();
  66.  
  67. $nb_result = count($resultat);
  68.  
  69. if ($nb_result == 1)
  70. {
  71. /* Démarre une session si aucune n'est déjà existante et enregistre le pseudo dans la variable de session $_SESSION['login'] qui donne au visiteur la possibilité de se connecter. */
  72. if (!session_id()) session_start();
  73. $_SESSION['login'] = $pseudo;
  74.  
  75. $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).', vous êtes connecté';
  76.  
  77. /*ou redirection vers une page en cas de succès ex : menu.php*/
  78. header("Location: index.php");
  79. exit();
  80.  
  81. /* Si vous voulez récupérer les données elles se trouvent dans la première et unique ligne du tableau $resultat par exemple */
  82. /* $result = $resultat[0];
  83. echo $result['pseudo'];
  84. echo $result['date_enregistrement'];
  85. */
  86. }
  87. else if ($nb_result > 1)
  88. {
  89. /* Par sécurité si plusieurs réponses de la requête mais si la table est bien construite on ne devrait jamais rentrer dans cette condition */
  90. $message = 'Problème de d\'unicité dans la table';
  91. }
  92. else
  93. { /* Le pseudo ou le mot de passe sont incorrect */
  94. $message = 'Le pseudo ou le mot de passe sont incorrect';
  95. }
  96. }
  97. catch (PDOException $e)
  98. {
  99. $message = 'Problème dans la requête de sélection';
  100. }
  101. }
  102. else
  103. {/*au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli*/
  104. $message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
  105. }
  106. }
  107. ?>
  108. <!DOCTYPE html>
  109. <html lang="fr">
  110. <head>
  111. <meta name="ROBOTS" content="noindex">
  112. <meta name="ROBOTS" content="none,noarchive">
  113. <meta charset="UTF-8">
  114. <title>QUIZZY</title>
  115.  
  116. <link href='https://fonts.googleapis.com/css?family=Carter+One' rel='stylesheet' type='text/css'>
  117. <link rel="stylesheet" href="css/foundation.min.css">
  118. <link rel="stylesheet" href="css/structure.css">
  119. <link rel="stylesheet" href="css/admin.css">
  120.  
  121. </head>
  122. <body id="#body">
  123.  
  124. <div class="column small-12" id="myGame">
  125. <div class="column small-12" >
  126. <div class="column small-2 myTitle"id="myTitleLeft"></div>
  127. <div class="column small-8 myTitle"id="myTitleMiddle"></div>
  128. <div class="column small-2 myTitle"id="myTitleRight"></div>
  129. </div>
  130. <div class="column small-12" data-equalizer >
  131. <div class="column small-2 questions"id="questionsLeft" data-equalizer-watch ></div>
  132. <div class="column small-8 questions"id="questionsMiddle" data-equalizer-watch >
  133. <div class="colum small-offset-2 small-8">
  134. <p class="text-center" id="theQuestion">Bienvenue</p>
  135. </div>
  136. <div class="column small-12">
  137. <form id="connexion" method="post">
  138. <div id="alert" class="alert callout" data-closable>
  139. <p></p>
  140. <button class="close-button" aria-label="Close alert" type="button" onclick="$(this).parent().slideUp();" >
  141. <span aria-hidden="true">&times;</span>
  142. </button>
  143. </div>
  144.  
  145. <div class="column small-12 medium-4"><label for="user">Utilisateur</label></div>
  146. <div class="column small-12 medium-8"><input id="user" type="text" placeholder="" name="user"></div>
  147.  
  148. <div class="column small-12 medium-4"><label for="user">Mot de passe</label></div>
  149. <div class="column small-12 medium-8"><input id="password" type="password" placeholder="" name="password"><br/><p>
  150. veuillez vous servir de l'utilisateur :test<br/>
  151. mot de passe: test
  152. </p></div>
  153.  
  154. <div class="column small-12 medium-4"><label for="user"><a href="Inscription.php">Inscription</a></label></div>
  155. <div class="column small-12 text-center"><input type="button" onClick="ajax_Bienvenue()" value="Connexion"></div>
  156. </form>
  157. </div>
  158. </div>
  159. <div class="column small-2 questions" id="questionsRight" data-equalizer-watch ></div>
  160. </div>
  161. <div class="column small-12">
  162. <div class="column small-2 footer"id="footerLeft"></div>
  163. <div class="column small-8 footer"id="footerMiddle"></div>
  164. <div class="column small-2 footer"id="footerRight"></div>
  165. </div>
  166. </div>
  167.  
  168.  
  169. <!-- POST LOAD JS -->
  170. <script src="js/vendor/jquery.min.js" type="text/javascript"></script>
  171. <script src="js/foundation.js" type="text/javascript"></script>
  172. <script src="js/vendor/what-input.min.js" type="text/javascript"></script>
  173. <script src="js/fonctions.js" type="text/javascript"></script>
  174. <script>
  175. $(document).foundation();
  176. var doc = document.documentElement;
  177. doc.setAttribute('data-useragent', navigator.userAgent);
  178. $(document).ready(function(){
  179. animateBody();
  180. $('#alert').hide();
  181. setInterval(animateBody, 150000);
  182. });
  183. </script>
  184. </body>
  185. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement