**Hello everyone, first of all I want to apologize my english is not very good. I am currently working on databases as well as php. I explain my problem, I would like to insert the current date each time the user registers or connects, replace the old date by the current date and then collect it and make a connection history. Thank you for your potential help
my database has 5 fields :1.
- id, int(11) , AUTO_INCREMENT
- mail varchar(255)
- pseudo varchar(25)
- mdp char(32)
- Date
register.php
$ AfficherFormulaire=1;
//traitement du formulaire:
if(isset($_POST['pseudo'],$_POST['mdp'],$_POST['mail'])){//l'utilisateur à cliqué sur "S'inscrire", on demande donc si les champs sont défini avec "isset"
if(empty($_POST['mail'])){//le champ mail est vide
echo '<a id="annotation">le champ mail est vide.</a>';
} elseif(empty($_POST['pseudo'])){//le champ pseudo est vide, on arrête l'exécution du script et on affiche un message d'erreur
echo '<a id="annotation">le champ pseudo est vide.</a>';
} elseif(!preg_match("#^[a-z0-9]+$#",$_POST['pseudo'])){//le champ pseudo est renseigné mais ne convient pas au format qu'on souhaite qu'il soit, soit: que des lettres minuscule + des chiffres (je préfère personnellement enregistrer le pseudo de mes membres en minuscule afin de ne pas avoir deux pseudo identique mais différents comme par exemple: Admin et admin)
echo '<a id="annotation">Le Pseudo doit être renseigné en lettres minuscules sans accents, sans caractères spéciaux.</a>';
} elseif(strlen($_POST['pseudo'])>15){//le pseudo est trop long, il dépasse 25 caractères
echo '<a id="annotation">Le pseudo est trop long, il dépasse 15 caractères.</a>';
} elseif(empty($_POST['mdp'])){//le champ mot de passe est vide
echo '<a id="annotation">Le champ Mot de passe est vide.</a>';
} elseif(mysqli_num_rows(mysqli_query($mysqli,"SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."'"))==1){//on vérifie que ce pseudo n'est pas déjà utilisé par un autre membre
echo '<a id="annotation">Ce pseudo est déjà utilisé.</a>';
} elseif(mysqli_num_rows(mysqli_query($mysqli,"SELECT * FROM membres WHERE mail='".$_POST['mail']."'"))==1){//on vérifie que ce mail n'est pas déjà utilisé par un autre membre
echo '<a id="annotation">Ce mail est déjà utilisé.</a>';
} else {
// INSERT INTO membres VALUES('', 'mail', 'pseudo', 'mdp', NOW);
if(!mysqli_query($mysqli,"INSERT INTO membres SET pseudo='".$_POST['pseudo']."',mail='".$_POST['mail']."', mdp='".md5($_POST['mdp'])."'", ")){
echo "Une erreur s'est produite: ".mysqli_error($mysqli);
} else {
echo '<a id="annotation">Vous êtes inscrit avec succès!</a>';
header("Location: postedecontrole.php");
}
}
connection.php
session_start(); // à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
if(isset($_POST['connexion'])) { // si le bouton "Connexion" est appuyé
// on vérifie que le champ "Pseudo" n'est pas vide
// empty vérifie à la fois si le champ est vide et si le champ existe belle et bien (is set)
if(empty($_POST['pseudo'])) {
echo "Le champ Pseudo est vide.";
} else {
// on vérifie maintenant si le champ "Mot de passe" n'est pas vide"
if(empty($_POST['mdp'])) {
echo "Le champ Mot de passe est vide.";
} else {
// les champs sont bien posté et pas vide, on sécurise les données entrées par le membre:
$Pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES, "ISO-8859-1"); // le htmlentities() passera les guillemets en entités HTML, ce qui empêchera les injections SQL
$MotDePasse = htmlentities($_POST['mdp'], ENT_QUOTES, "ISO-8859-1");
//on se connecte à la base de données:
$mysqli = mysqli_connect("localhost", "root", "", "domoserre");
//on vérifie que la connexion s'effectue correctement:
if(!$mysqli){
echo "Erreur de connexion à la base de données.";
} else {
// on fait maintenant la requête dans la base de données pour rechercher si ces données existe et correspondent:
$Requete = mysqli_query($mysqli,"SELECT * FROM membres WHERE pseudo = '".$Pseudo."' AND mdp = '".$MotDePasse."'");//si vous avez enregistré le mot de passe en md5() il vous suffira de faire la vérification en mettant mdp = '".md5($MotDePasse)."' au lieu de mdp = '".$MotDePasse."'
// si il y a un résultat, mysqli_num_rows() nous donnera alors 1
// si mysqli_num_rows() retourne 0 c'est qu'il a trouvé aucun résultat
if(mysqli_num_rows($Requete) == 0) {
echo "Le pseudo ou le mot de passe est incorrect, le compte n'a pas été trouvé.";
} else {
// on ouvre la session avec $_SESSION:
$_SESSION['pseudo'] = $Pseudo; // la session peut être appelée différemment et son contenu aussi peut être autre chose que le pseudo
header("Location: postedecontrole.php");
}
}
}
}
} ?>