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 dans bdd avec pdo


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 74
    Points : 46
    Points
    46
    Par défaut Insertion dans bdd avec pdo
    Bonjour;

    J'ai fait un formulaire et ça marchait nickel et là on m'a demandé de faire des modifications et cela en changeant le login et le remplcer par par e-mail donc jusqu'au là j'ai modifié le nom du champs,deuxième chose c'est que le login et le mot de passe je les avais dans une table à part par contre là ils sont regroupés avec toute les autres informations de la table et mon problème maintenant c'est que les informations saisies à l'inscription ne sont pas stockées dans la bdd alors qu'avant si


    Si quelqu'un pourra m'orienter je vous remercie

  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
    Montre nous ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    pour le code j'ai le fichier inscription.php

    Code php : 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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    if(isset($_POST['NOMDEB']))
    {
    $NOMDEB= $_POST['NOMDEB'];}
    if(isset($_POST['PRENDEB']))
    {
    $PRENDEB = $_POST['PRENDEB'];}
     
    if(isset($_POST['ADRDEB']))
    {
    $ADRDEB = $_POST['ADRDEB'];}
     
    if(isset($_POST['VILLEDEB']))
    {
    $VILLEDEB = $_POST['VILLEDEB'];}
     
    if(isset($_POST['CPDEB']))
    {
    $CPDEB = $_POST['CPDEB'];}
     
    if(isset($_POST['PAYSDEB']))
    {
    $PAYSDEB = $_POST['PAYSDEB'];}
     
    if(isset ($_POST['submit']))
    {
    $connexion = new PDO('mysql:host=localhost;dbname=test', 'root', '') ;  // connexion à la base de données
    $req1=$connexion->exec("INSERT INTO client VALUES ('','$NOMDEB','$PRENDEB','$ADRDEB','$CPDEB','$VILLEDEB')");
    }
     
    if(isset($_POST['IBCLT']))
    {
    $IBCLT = $_POST['IBCLT'];
    }
    if(isset($_POST['BICLT']))
    {
    $BICLT = $_POST['BICLT'];
    }
    if(isset ($_POST['submit']))
    {
    // tester la longueur de l'Iban et le Bic
    if (strlen($IBCLT) != 27) {exit("Longueur de l'Ib invalide.");
    }else
    if (strlen($BICLT) != 11) {exit("Longueur du Bi invalide.");
    }
    $connexion = new PDO('mysql:host=localhost;dbname=test', 'root', '') ;  // connexion à la base de données
    $req1=$connexion->exec("INSERT INTO compte VALUES ('','$IBCLT','$BICLT')");//select
     //requête mysql
     
     
     
    $MAILDEB=htmlentities(trim($_POST['MAILDEB']));
    $PSWDEB=htmlentities(trim($_POST['PSWDEB']));
    $repeatpassword=htmlentities(trim($_POST['repeatpassword']));
     
    //vérifier si les deux mot de passe sont identiques
     
    if($MAILDEB&&$PSWDEB&&$repeatpassword&&$NOMDEB&&$PRENDEB&&$ADRDEB&&$CPDEB&&$VILLEDEB&&$IBCLT&&$BICLT)
    {
    if ($PSWDEB==$repeatpassword)        
    {
    $PSWDEB=sha1($PSWDEB);
    $connexion = new PDO('mysql:host=localhost;dbname=test', 'root', '') ;  // connexion à la base de données
    $req1 = $connexion->prepare('SELECT MAILDEB FROM client');
    $req1->execute();
    if (isset($_POST['MAILDEB']))
    {
     
        $MAILDEB = htmlentities($_POST['MAILDEB']);
     
        // On insère la variable LOGINDEB qui correspond à la saisie de l'utilisateur dans la requête SQL
        $req1 = $connexion->prepare('SELECT MAILDEB FROM client WHERE MAILDEB = \''.$MAILDEB.'\';');
        $req1->execute(array('.$MAILDEB.' => $_POST['MAILDEB']));
     
        // recherche de résultat
        $res = $req1->fetch();
     
        if ($res)
        {
     
            echo "Cet E-mail existe déjà !";
        }
     
        else
        {
      echo "Bienvenue !" ;
        $req1=$connexion->exec("INSERT INTO dclient VALUES('','$MAILDEB','$PSWDEB')");
        /* Test de vérification pour savoir si la requête s'execute bien
        $connexion->exec($req1);*/
     
     
      die ("   Inscription terminee  <a href='accueil.php'> Connectez </a>vous ici");
    }
    }else echo "<center>Les deux mot de passe doivent être identiques</center>";
    }
    }else echo"<center>Veuillez saisir tous les champs</center>";
     
    }
    ?>

    et le fichier connexion.php


    Code php : 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
    <?php
    include("config.php");
    if(isset($_POST['MAILDEB'])){ 
    $MAILDEB = $_POST['MAILDEB']; }
     
    if(!empty ($_POST['MAILDEB'])&& !empty($_POST['PSWDEB']))
    {
     
    $_POST['MAILDEB']=htmlentities($_POST['MAILDEB']);
    $_POST['PSWDEB']=htmlentities($_POST['PSWDEB']);
     
    $req1=$connexion->exec("SELECT * FROM client WHERE MAILDEB='".$_POST['MAILDEB']."' ");
    $data = $req1->fetch();
     
    if (!empty ($data['MAILDEB'])){
     
     $_POST['PSWDEB']= sha1(trim($_POST['PSWDEB']));
      if ($data['PSWDEB']==$_POST['PSWDEB']){
     session_start();
    $_SESSION['MAILDEB'] = $_POST['MAILDEB'];
    $_SESSION['MAILDEB'] = $_data['MAILDEB'];
    header("Location: index_client.php");
     
    }else{
     echo "E-mail ou  mot de passe incorrect";
    }
     
    }else{
    echo "E-mail ou mot de passe incorrect ";
    }
     
    } else {
    echo "Tous les champs ne sont pas correctement remplis";
    }
     
     
    $req1=$connexion->query("SELECT * FROM client");
    if(isset($_POST['NOMDEB']))
    {
    $NOMDEB= $_POST['NOMDEB'];
    }
    if(isset($_POST['PRENDEB']))
    {
    $PRENDEB = $_POST['PRENDEB'];
    }
    if(isset($_POST['ADRDEB'])){
    $ADRDEB = $_POST['ADRDEB']; }
    if(isset($_POST['VILLEDEB'])){ $VILLEDEB = $_POST['VILLEDEB']; }
    if(isset($_POST['CPDEB'])){ $CPDEB = $_POST['CPDEB']; }
    if(isset($_POST['PAYSDEB'])){ $PAYSDEB = $_POST['PAYSDEB']; }
     
     
     
    $req1=$connexion->query("SELECT * FROM compte");
    if(isset($_POST['IBCLT'])){$IBCLT = $_POST['IBCLT'];}
    if(isset($_POST['BICLT'])){$BICLT = $_POST['BICLT'];}
     
    ?>

    une fois je suis inscrite il me demande apres de m'identifier ,une fosi je saisie mon mail et mon mot de passe il ne me redirige pas vers l'autre page et il m'affiche 'Tous les champs ne sont pas correctement remplis' ,en plus que les données ne sont pas stockées dans la bdd.

    merci

  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
    Tu devrais commencer par écrire un code bien présenté et indenté.
    Ca ne m'ettonne pas que tu ne t'y retrouves pas.

    Par exemple dans ton fichier inscription.php tu fais 3 fois la connexion à la base de données.
    Autre exemple : $MAILDEB est défini deux fois, de deux facons différentes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    j'ai fait ce code en suivant un tutoriel,après j'ai modifié selon mes besoins ( ajout des champs etc) peut etre qu'il est mal présenté mais il fonctionnait sauf que là avec la modification concernant l'email et mettre le tout dans une table au lieu de deux comme j'ai fait avant ça a bloqué tout !!!!!
    En tout cas je vais supprimé les connexions à la bdd qui sont en plus,mais à part ça il y a pas un problème qui bloque l'insertion dans la base?

  6. #6
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut Exemple syntaxe PDO
    Bonjour,

    inspire toi de cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "SELECT * FROM matable WHERE  monchamps=:status ";
    $st = $db->prepare($sql); // $db est ton Objet PDO
    $st->execute(array('status' => 0));
    $res = $st->fetchAll(PDO::FETCH_ASSOC); // $res est un tableau associatif
    Un bon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(<condition>) {
        <code>
    }

    function header :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Location: http://www.example.com/');
    exit; // Forcer la sortie du script


    ++
    AlloSchool, votre école sur internet.

  7. #7
    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
    Certes il a marché un jour mais il est tellement fouilli que tu n'es plus capable de le maintenir.
    J'aimerais bien voir de plus le tutoriel où on fait des insertions dans une base de donnée sans se préoccuper des injections SQL.

    Encore un exemple toujours dans inscription.php, ligne 63 tu as une requête qui ne sert à rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req1 = $connexion->prepare('SELECT MAILDEB FROM client');
    $req1->execute();
    Dans connexion.php, encore une fois tu as la même variable déclarée deux fois à la suite avec des valeurs différentes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['MAILDEB'] = $_POST['MAILDEB'];
    $_SESSION['MAILDEB'] = $_data['MAILDEB'];
    Et a quoi sert tous le code dans connexion.php à partir de la ligne 37 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    En fait pour le stockage dans la base de données je me suis débrouillée à les insérer,mais le souci c'est que quand je me connecte avec mon email et mon password il m'affiche un message d'erreur,et même pour la vérification d'existance de l'email dans la base ;même si celui ci n'existe pas il m'affiche le message d'erreur comme quoi il existe déjà !!!

    pour les lignes dont tu me parlais me servent car dans mon formulaire ,il y a inscription qui redirige vers un lien qui demande une authentification ( saisir mail et mot de passe ) qui permet de se rediriger vers une autre page ou on trouve toutes les infos stockées dans la bdd.

    tout marchait bien ,j'ai juste modifié les noms des champs et mettre le tout dans une seule table.par contre le code j'ai rien modifié et je trouve ça bizarre car je passe trop de temps la dessus
    je fais comment?? ,je sais que mon code n'est pas top mais là j'apprends car je suis novice.


    Pour le tuto je vais te le chercher et te l'envoyer .

    Merci

  9. #9
    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
    Pour le tuto je vais te le chercher et te l'envoyer .
    C'etait une question rhétorique, je n'ai pas envie de voir un mauvais article.

    là j'apprends car je suis novice
    Ecrit un code propre, clair et simple.
    Dans un paquet comme ça, rempli de lignes qui ne servent à rien, forcemment tu as des noeuds.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Probleme Insertion dans BDD avec dbaccess
    Par Mobybic dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2011, 20h14
  2. [MySQL] Insert fichier xml dans BDD avec des sous noeuds
    Par AntonyG43 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/01/2011, 15h50
  3. [MySQL] Problème double insertion dans BDD
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 28/12/2005, 00h09
  4. pb double insertion dans BDD
    Par oceane751 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/12/2005, 09h59
  5. Insertion dans BDD type ACCESS
    Par NeHuS dans le forum ASP
    Réponses: 2
    Dernier message: 20/04/2005, 10h53

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