IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Insertion des données du formulaire dans la base [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Insertion des données du formulaire dans la base
    Bonjour, j'ai un probleme ,je n'arrive pas à insérer les données de mon formlaires dans ma table. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Inscription</title>
    </head>
    <body>
    <?php
    include_once 'config.php';
    if(isset($_POST)&& isset($_POST['civilite']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['adresse'])
     && isset($_POST['cplad'])&& isset($_POST['etage'])&& isset($_POST['porte'])&& isset($_POST['ville'])&& isset($_POST['codepostal'])&& isset($_POST['mail']) && isset($_POST['phone']) && isset($_POST['password']) && isset($_POST['pwd1'])){
    	if(get_magic_quotes_gpc()){
    		$_POST['civilite'] = stripslashes(trim($_POST['civilite']));
    		$_POST['nom'] = stripslashes(trim($_POST['nom']));
    		$_POST['prenom'] = stripslashes(trim($_POST['prenom']));
    		$_POST['adresse'] = stripslashes(trim($_POST['adresse']));
    		$_POST['cplad'] = stripslashes(trim($_POST['cplad']));
    		$_POST['etage'] = stripslashes(trim($_POST['etage']));
    		$_POST['porte'] = stripslashes(trim($_POST['porte']));
    		$_POST['ville'] = stripslashes(trim($_POST['ville']));
    		$_POST['codepostal'] = stripslashes(trim($_POST['codepostal']));
    		$_POST['mail'] = stripslashes(trim($_POST['mail']));
    		$_POST['phone'] = stripslashes(trim($_POST['phone']));
    		$_POST['password'] = stripslashes(trim($_POST['password']));
    	}
    	if(preg_match('#^(([a-z0-9!#$%&\'*+/=?^_`{|}~-]+.?)*[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+.?)*[a-z0-9-_]+).[a-z]{2,4}$#i',$_POST['mail'])){
    		$id = '';
    		$civilite = $_POST['civilite'];
    		$nom = $_POST['nom'];
    		$prenom = $_POST['prenom'];
    		$adresse = $_POST['adresse'];
    		$cplad = $_POST['cplad'];
    		$etage = $_POST['etage'];
    		$porte = $_POST['porte'];
    		$ville = $_POST['ville'];
    		$codepostal = $_POST['codepostal'];
    		$mail = $_POST['mail'];
    		$phone = $_POST['phone'];
    		$password = sha1($_POST['password']);
    		if($i = $bdd->prepare("
    	INSERT INTO client (id,civilite,nom,prenom,adresse,cplad,etage,porte,ville,codepostal,mail,phone,password)
    	VALUES (:id,:civilite,:nom,:prenom,:adresse,:cplad,:etage,:porte,:ville,:codepostal,:mail,:phone,:password)")
    )
    		$i->bindParam(':id', $id);
    		$i->bindParam(':civilite', $civilite);
    		$i->bindParam(':nom', $nom);
    		$i->bindParam(':prenom', $prenom);
    		$i->bindParam(':adresse', $adresse);
    		$i->bindParam(':cplad', $cplad);
    		$i->bindParam(':etage', $etage);
    		$i->bindParam(':porte', $porte);
    		$i->bindParam(':ville', $ville);
    		$i->bindParam(':codepostal', $codepostal);
    		$i->bindParam(':mail', $mail);
    		$i->bindParam(':phone', $phone);
    		$i->bindParam(':password', $password);
    		$i->execute();
    	}else{
    		echo 'Veuillez entrer une adresse électronique valide';
    	} 
    }
    ?>
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il y a beaicoup de choses inutiles dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <html>
    <head>
    <meta charset="utf-8">
    <title>Inscription</title>
    </head>
    <body>
    <?php
    include_once 'config.php';
     
    if(isset($_POST['civilite'] , $_POST['nom'], $_POST['prenom'], $_POST['adresse'],$_POST['cplad'], $_POST['etage'], $_POST['porte'], $_POST['ville'], $_POST['codepostal'], $_POST['mail'], $_POST['phone'], $_POST['password'], $_POST['pwd1']){
     
    	if(preg_match('#^(([a-z0-9!#$%&\'*+/=?^_`{|}~-]+.?)*[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+.?)*[a-z0-9-_]+).[a-z]{2,4}$#i',$_POST['mail'])){
     
    	$bdd->prepare("
    	INSERT INTO client (id,civilite,nom,prenom,adresse,cplad,etage,porte,ville,codepostal,mail,phone,password)
    	VALUES (:id,:civilite,:nom,:prenom,:adresse,:cplad,:etage,:porte,:ville,:codepostal,:mail,:phone,:password)";
     
            array_walk($_POST, create_function('&$val', '$val = trim($val);')); 
     
    		$i->bindParam(':id', $_POST['id']);
    		$i->bindParam(':civilite', $_POST['civilite']);
    		$i->bindParam(':nom',  $_POST['nom']);
    		$i->bindParam(':prenom', $_POST['prenom']);
    		$i->bindParam(':adresse', $_POST['adresse']);
    		$i->bindParam(':cplad', $_POST['cplad']);
    		$i->bindParam(':etage', $_POST['etage']);
    		$i->bindParam(':porte', $_POST['porte']);
    		$i->bindParam(':ville', $_POST['ville']);
    		$i->bindParam(':codepostal', $_POST['codepostal']);
    		$i->bindParam(':mail', $_POST['mail']);
    		$i->bindParam(':phone', $_POST['phone']);
    		$i->bindParam(':password', $_POST['password']);
    		$i->execute();
     
    	}else{
     		echo 'Veuillez entrer une adresse électronique valide';
     	} 
     }
    ?>
    </body>
    </html>
    Est-ce que "id" ne serait pas autoincrementé ?
    Tu le mets dans la requête mais pas dans le isset ; est-ce qu'il existe dans le formulaire ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Oui "id" est auto incrémenté, et n'est pas dans le formulaire.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il ne doit alors pas être mentionné dans la requête.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    J'ai corriger cette erreur mais maintenant une nouvelle apparait pour le filtrage de l'adresse mail:

    Warning: preg_match(): Unknown modifier '$' in C:\wamp\www\Projet\traitement2.php on line 33
    La ligne qui correspond à l'erreur est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(preg_match('#^(([a-z0-9!#$%&\'*+/=?^_`{|}~-]+.?)*[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+.?)*[a-z0-9-_]+).[a-z]{2,4}$#i',$_POST['mail']))

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ton expression regulière n'est pas bonne.

    regarde par ici :
    http://atranchant.developpez.com/code/validation/

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Si on pouvait éviter la cuisine au RegEx pour la validation de mail qui est gérée en natif par PHP : filter_var()

    @sabotage
    Si le $_POST ne contient rien d'autre que des valeurs du formulaire, ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_walk($_POST, create_function('&$val', '$val = trim($val);'));
    peut être avantageusement remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST = array_map('trim', $_POST);

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup ça fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/01/2015, 15h33
  2. [MySQL] Insertion des données du formulaire dans une BDD
    Par OG__fenomeno dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/05/2013, 11h52
  3. Insertion des images et vidéos dans une base de données
    Par taouja dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 07/04/2007, 13h31
  4. Insertion des données du formulaire dans la base
    Par bebas dans le forum Langage
    Réponses: 9
    Dernier message: 23/02/2007, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo