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
    Membre averti
    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
    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
    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 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    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
    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
    Par défaut
    Il ne doit alors pas être mentionné dans la requête.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    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
    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
    Par défaut
    ton expression regulière n'est pas bonne.

    regarde par ici :
    http://atranchant.developpez.com/code/validation/
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Expert confirmé
    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
    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
    Membre averti
    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
    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