Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?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');
- /* Initialisation de la variable du message de réponse*/
- $message = null;
- /* Récupération des variables issues du formulaire par la méthode post*/
- $pseudo = filter_input(INPUT_POST, 'pseudo');
- $pass = filter_input(INPUT_POST, 'pass');
- /* Si le formulaire est envoyé*/
- if (isset($pseudo,$pass))
- {
- /* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */
- $pseudo = trim($pseudo) != '' ? $pseudo : null;
- $pass = trim($pass) != '' ? $pass : null;
- /* Si $pseudo et $pass différents de null */
- if(isset($pseudo,$pass))
- {
- /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
- A MODIFIER avec vos valeurs */
- $hostname = "localhost";
- $database = "quizzy";
- $username = "root";
- $password = "";
- /* Configuration des options de connexion */
- /* Désactive l'éumlateur de requêtes préparées (hautement recommandé) */
- $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;
- /* Active le mode exception */
- $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
- /* Indique le charset */
- $pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
- /* Connexion */
- try
- {
- $connect = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password, $pdo_options);
- }
- catch (PDOException $e)
- {
- exit('problème de connexion à la base');
- }
- /* 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 */
- $requete = "SELECT * FROM membres WHERE pseudo = :nom AND pass = :password";
- try
- {
- /* Préparation de la requête*/
- $req_prep = $connect->prepare($requete);
- /* Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau*/
- $req_prep->execute(array(':nom'=>$pseudo,':password'=>$pass));
- /* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/
- $resultat = $req_prep->fetchAll();
- $nb_result = count($resultat);
- if ($nb_result == 1)
- {
- /* 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. */
- if (!session_id()) session_start();
- $_SESSION['login'] = $pseudo;
- $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).', vous êtes connecté';
- /*ou redirection vers une page en cas de succès ex : menu.php*/
- header("Location: index.php");
- exit();
- /* Si vous voulez récupérer les données elles se trouvent dans la première et unique ligne du tableau $resultat par exemple */
- /* $result = $resultat[0];
- echo $result['pseudo'];
- echo $result['date_enregistrement'];
- */
- }
- else if ($nb_result > 1)
- {
- /* 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 */
- $message = 'Problème de d\'unicité dans la table';
- }
- else
- { /* Le pseudo ou le mot de passe sont incorrect */
- $message = 'Le pseudo ou le mot de passe sont incorrect';
- }
- }
- catch (PDOException $e)
- {
- $message = 'Problème dans la requête de sélection';
- }
- }
- else
- {/*au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli*/
- $message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
- }
- }
- ?>
- <!DOCTYPE html>
- <html lang="fr">
- <head>
- <meta name="ROBOTS" content="noindex">
- <meta name="ROBOTS" content="none,noarchive">
- <meta charset="UTF-8">
- <title>QUIZZY</title>
- <link href='https://fonts.googleapis.com/css?family=Carter+One' rel='stylesheet' type='text/css'>
- <link rel="stylesheet" href="css/foundation.min.css">
- <link rel="stylesheet" href="css/structure.css">
- <link rel="stylesheet" href="css/admin.css">
- </head>
- <body id="#body">
- <div class="column small-12" id="myGame">
- <div class="column small-12" >
- <div class="column small-2 myTitle"id="myTitleLeft"></div>
- <div class="column small-8 myTitle"id="myTitleMiddle"></div>
- <div class="column small-2 myTitle"id="myTitleRight"></div>
- </div>
- <div class="column small-12" data-equalizer >
- <div class="column small-2 questions"id="questionsLeft" data-equalizer-watch ></div>
- <div class="column small-8 questions"id="questionsMiddle" data-equalizer-watch >
- <div class="colum small-offset-2 small-8">
- <p class="text-center" id="theQuestion">Bienvenue</p>
- </div>
- <div class="column small-12">
- <form id="connexion" method="post">
- <div id="alert" class="alert callout" data-closable>
- <p></p>
- <button class="close-button" aria-label="Close alert" type="button" onclick="$(this).parent().slideUp();" >
- <span aria-hidden="true">×</span>
- </button>
- </div>
- <div class="column small-12 medium-4"><label for="user">Utilisateur</label></div>
- <div class="column small-12 medium-8"><input id="user" type="text" placeholder="" name="user"></div>
- <div class="column small-12 medium-4"><label for="user">Mot de passe</label></div>
- <div class="column small-12 medium-8"><input id="password" type="password" placeholder="" name="password"><br/><p>
- veuillez vous servir de l'utilisateur :test<br/>
- mot de passe: test
- </p></div>
- <div class="column small-12 medium-4"><label for="user"><a href="Inscription.php">Inscription</a></label></div>
- <div class="column small-12 text-center"><input type="button" onClick="ajax_Bienvenue()" value="Connexion"></div>
- </form>
- </div>
- </div>
- <div class="column small-2 questions" id="questionsRight" data-equalizer-watch ></div>
- </div>
- <div class="column small-12">
- <div class="column small-2 footer"id="footerLeft"></div>
- <div class="column small-8 footer"id="footerMiddle"></div>
- <div class="column small-2 footer"id="footerRight"></div>
- </div>
- </div>
- <!-- POST LOAD JS -->
- <script src="js/vendor/jquery.min.js" type="text/javascript"></script>
- <script src="js/foundation.js" type="text/javascript"></script>
- <script src="js/vendor/what-input.min.js" type="text/javascript"></script>
- <script src="js/fonctions.js" type="text/javascript"></script>
- <script>
- $(document).foundation();
- var doc = document.documentElement;
- doc.setAttribute('data-useragent', navigator.userAgent);
- $(document).ready(function(){
- animateBody();
- $('#alert').hide();
- setInterval(animateBody, 150000);
- });
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement