je l'ai modifié pour mes besoins, j'ai rajouté des champs et je ne veux pas de pseudo mais l'adresse mail à la place voici la table dont je veux insérer les valeurs récupérées par le formulaire.
Merci de votre aide.
CREATE TABLE IF NOT EXISTS `clients` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(255) NOT NULL,
`prenom` varchar(255) NOT NULL,
`mail` varchar(255) NOT NULL,
`adresse` varchar(255) NOT NULL,
`codepostal` varchar(255) NOT NULL,
`naissance` varchar(255) NOT NULL,
`age` varchar(255) NOT NULL,
`mdp` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `mail` (`mail`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
<?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*/
$nom = filter_input(INPUT_POST, 'nom');
$prenom = filter_input(INPUT_POST, 'prenom');
$adresse = filter_input(INPUT_POST, 'adresse');
$codepostal = filter_input(INPUT_POST, 'codepostal');
$ville = filter_input(INPUT_POST, 'ville');
$mail = filter_input(INPUT_POST, 'mail');
$phone = filter_input(INPUT_POST, 'phone');
$naissance = filter_input(INPUT_POST, 'naissance');
$age = filter_input(INPUT_POST, 'age');
$mdp = filter_input(INPUT_POST, 'mdp');
/* Si le formulaire est envoyé */
if (isset($nom,$prenom,$adresse,$codepostal,$ville,$mail,$phone,$naissance,$age,$mdp))
{
/* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */
$nom = trim($nom) != '' ? $nom : null;
$prenom = trim($prenom) != '' ? $prenom : null;
$adresse = trim($adresse) != '' ? $adresse : null;
$codepostal = trim($codepostal) != '' ? $codepostal : null;
$ville = trim($ville) != '' ? $ville : null;
$mail = trim($mail) != '' ? $mail : null;
$phone = trim($phone) != '' ? $phone : null;
$naissance = trim($naissance) != '' ? $naissance : null;
$age = trim($age) != '' ? $age : null;
$mdp = trim($mdp) != '' ? $mdp : null;
/* Si $mail et $pass différents de null */
if(isset($nom,$prenom,$adresse,$codepostal,$ville,$mail,$phone,$naissance,$age,$mdp))
{
/* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
A MODIFIER avec vos valeurs */
$hostname = "localhost";
$database = "prendrerdv";
$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 compter le nombre d'enregistrements répondant à la clause : champ du mail de la table = mail posté dans le formulaire */
$requete = "SELECT COUNT(*) FROM clients WHERE mail = ?";
try
{
/* préparation de la requête*/
$req_prep = $connect->prepare($requete);
/* Exécution de la requête en passant la position du marqueur et sa variable associée dans un tableau*/
$req_prep->execute(array(0=>$mail));
/* Récupération du résultat */
$resultat = $req_prep->fetchColumn();
if ($resultat == 0)
/* Résultat du comptage = 0 pour ce mail, on peut donc l'enregistrer */
{
/* Pour enregistrer la date actuelle (date/heure/minutes/secondes) on peut utiliser directement la fonction mysql : NOW()*/
$insertion = "INSERT INTO clients(nom, prenom, adresse, codepostal, ville, mail, phone, naissance, age, mdp) VALUES(:nom, :prenom, :adresse, :codepostal, :ville, :mail, :phone, :naissance, :age, :mdp)";
/* préparation de l'insertion */
$insert_prep = $connect->prepare($insertion);
/* Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau*/
$inser_exec = $insert_prep->execute(array(':nom'=>$nom,':prenom'=>$prenom,':adresse'=>$adresse,':codepostal'=>$codepostal,':ville'=>$ville,':mail'=>$mail,':phone'=>$phone,':naissance'=>$naissance,':age'=>$age,':mdp'=>$mdp));
/* Si l'insertion s'est faite correctement...*/
if ($inser_exec === true)
{
/* Démarre une session si aucune n'est déjà existante et enregistre le mail dans la variable de session $_SESSION['login'] qui donne au visiteur la possibilité de se connecter. */
if (!session_id()) session_start();
$_SESSION['login'] = $mail;
/* A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.*/
$message = 'Votre inscription est enregistrée.';
/*ou redirection vers une page en cas de succès ex : menu.php*/
/*header("Location: menu.php");
exit(); */
}
}
else
{ /* Le mail est déjà utilisé */
$message = 'Ce mail est déjà utilisé, changez-le.';
}
}
catch (PDOException $e)
{
$message = 'Problème dans la requête d\'insertion';
}
}
else
{ /* Au moins un des deux champs "mail" ou "mot de passe" n'a pas été rempli*/
$message = 'Les champs mail et Mot de passe doivent être remplis.';
}
}
?>
<!doctype html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulaire d'inscription - tutoriel PHP France</title>
<style type="text/css">
<!--
body, p, h1,form, input, fieldset
{
margin:0;
padding:0;
}
body
{
background-color: #F4F4F4;
}
#inscription
{
width:400px;
background:#FFFFFF;
margin:20px auto;
font-family: Arial, Helvetica, sans-serif;
font-size:1em;
border:1px solid #ccc;
border-radius:10px;
}
#inscription fieldset
{
text-align:center;
font-size:1.2em;
background:#333333;
padding-bottom:5px;
margin-bottom:15px;
color:#FFFFFF;
letter-spacing:0.05em;
border-top-left-radius:10px;
border-top-right-radius:10px;
}
#inscription p
{
padding-top:15px;
padding-right:50px;
text-align:right;
}
#inscription input
{
margin-left:30px;
width:150px;
}
#inscription #valider
{
width:155px;
font-size:0.8em;
}
#inscription #message
{
height:27px;
color:#F00;
font-size:0.8em;
font-weight:bold;
text-align:center;
padding:10px 0 0 0;
}
-->
</style>
</head>
<body>
<div id = "inscription">
<form action = "#" method = "post">
<fieldset>Inscription</fieldset>
<p><label for = "nom">Nom : </label><input type = "text" name = "nom" id = "nom" /></p>
<p><label for = "prenom">Prénom : </label><input type = "text" name = "prenom" id = "prenom" /></p>
<p><label for = "adresse">Adresse : </label><input type = "text" name = "adresse" id = "adresse" /></p>
<p><label for = "codepostal">Code postal : </label><input type = "text" name = "codepostal" id = "codepostal" /></p>
<p><label for = "ville">Ville : </label><input type = "text" name = "ville" id = "ville" /></p>
<p><label for = "mail">E-Mail : </label><input type = "text" name = "mail" id = "mail" /></p>
<p><label for = "phone">Téléphone : </label><input type = "text" name = "phone" id = "phone" /></p>
<p><label for = "naissance">Date de Naissance : </label><input type = "date" name = "naissance" id = "naissance" /></p>
<p><label for = "age">Âge : </label><input type = "text" name = "age" id = "age" /></p>
<p><label for = "mdp">Mot de passe : </label><input type = "password" name = "mdp" id = "mdp" /></p>
<p><input type = "submit" value = "Envoyer" id = "valider" /></p>
</form>
<p id = "message"><?= $message?:'' ?></p>
</div>
</body>
</html>
Merci de votre aide