1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <?php
//affichage des erreurs pHP
error_reporting(E_ALL);
/* 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');
if (!session_id()){
session_start();
}
//connexion à la bdd (on inclus le fichier de connexion)
require_once "config.php";
/* Initialisation de la variable du message de réponse*/
$message = null;
/* Récupération des variables issues du formulaire par la méthode post*/
$username = filter_input(INPUT_POST, 'username');
$password = filter_input(INPUT_POST, 'password');
$email = filter_input(INPUT_POST, 'email');
$age = filter_input(INPUT_POST, 'age');
$sexe = filter_input(INPUT_POST, 'sexe');
$race = filter_input(INPUT_POST, 'race');
/* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */
$username = !empty(trim($username)) ? trim($username) : null;
$password = !empty(trim($password)) ? trim($password) : null;
$email = !empty(trim($email)) ? trim($email) : null;
$age = !empty(trim($age)) ? trim($age) : null;
$sexe = !empty(trim($sexe)) ? trim($sexe) : null;
$race = !empty(trim($race)) ? trim($race) : null;
if ($username,$password,$email,$age,$sexe,$race)){ /* Si le formulaire est envoyé et Si $pseudo etc sont différents de null */
/* 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 */
//* Préparation de la requête*/
$requete = "SELECT count(*) as NB FROM membres WHERE username = :username AND password = :password AND email = :email AND age = :age AND sexe = :sexe AND race = :race";
$datas = array(':username'=>$username,':password'=>$password,':email'=>$email,':age'=>$age,':sexe'=>$sexe,':race'=>$age);
try {
//execution de la requete
$req_prep = $bdd->prepare($requete);
$req_prep->execute($datas);
$resultat = $req_prep->fetchAll(); /* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/
} catch (PDOException $e){
$message = 'Problème dans la requête de sélection :' . $e->getMessage();
}
$nb_result =!empty($resultat) ? $resultat[0]['NB'] : 0;
if ($nb_result == 1) {
$_SESSION['username'] = $username;
//$message = 'Bonjour '.htmlspecialchars($_SESSION['username']).', vous êtes connecté';
/*ou redirection vers une page en cas de succès ex : menu.php*/
header("Location: ./blabla.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 = 'pseudo ou autre champs est incorrect';
}
}else {/*au moins un des champs n'a pas été rempli*/
$message = 'TOUS LES CHAMPS DOIVENT ETRE REMPLIS.';
}
?> |
Partager