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 :

Pas de données vers ma base de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 63
    Par défaut Pas de données vers ma base de données
    Bonsoir,

    j'ai un problème que je n'arrive pas à comprendre:
    Lorsque je fait le "submit", aucune donnee ne va vers ma base de donnée!
    Ce code m'a été gentillement proposé pour qu'il soit plus "propre" que celui que j'avais fait!
    J'ai rajouté le if(isset($_POST['Valider'])) et le closeCursor()
    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
     <?php
        require_once('connect.php');
        require_once('forminsc.php');
     
    $erreurs = [];
    if(isset($_POST['Valider']))
    {
      if(empty($_POST['pseudo']))   
    {
        $erreurs[] = "Le champ pseudo a été omis";
    } 
        else 
    {
        $sth = $bdd->prepare('SELECT COUNT(*) FROM validation WHERE pseudo = :pseudo');
        $sth->execute(['pseudo' => $_POST['pseudo']]);
            if ($sth->fetchColumn()/* != 0*/) 
     
    {
            $erreurs[] = "Ce pseudo est déjà pris, choisissez un autre pseudo!";
    }
    }
    }
    if(empty($_POST['passe']) || empty($_POST['passe2'])) 
    {
        $erreurs[]= "Le champ mot de passe et/ou sa confirmation ont été omis";    
    }
     
    else if ($_POST['passe'] != $_POST['passe2']) 
    {
        $erreurs[] = "Vos 2 mots de passe ne correspondent pas, veuillez recommencer";
    } 
        if($erreurs)
    {
        echo 'Veuillez corriger les erreurs suivantes :<br/>';
        foreach ($erreurs as $erreur) 
    {
        echo $erreur, '<br/>';
    }
    } 
        else 
    {
        $sth = $bdd->prepare('INSERT INTO validation (nom, prenom, pseudo, passe, email) VALUES (:nom, :prenom, :pseudo, :passe, :email)');
        $sth->bindValue(':nom', $_POST['nom']);
        $sth->bindValue(':prenom', $_POST['prenom']);
        $sth->bindValue(':pseudo', $_POST['pseudo']);
        $sth->bindValue(':passe', password_hash($_POST['passe'], PASSWORD_ARGON2ID));
        $sth->bindValue(':email', $_POST['email']);
        $sth->execute();
        $sth->closeCursor();
    }
    ?>
    Merci de votre aide

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 518
    Par défaut
    Salut,

    Avec bindValue tu dois mettre le Troisième paramètre, voir bindValue.

    Il y'a aussi bindParam qui lie une variable PHP à un marqueur nommé ou interrogatif correspondant dans une requête SQL utilisée pour préparer la requête. Contrairement à PDOStatement::bindValue(), la variable est liée en tant que référence et ne sera évaluée qu'au moment de l'appel à la fonction PDOStatement::execute().

    Sinon essaies de passer le tableau directement dans execute :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sth->execute([
         ":nom"=>$_POST["nom"],
         ":prenom"=>$_POST['prenom'],
         ":pseudo"=>$_POST['pseudo'],
         ":passe"=>password_hash($_POST['passe'], PASSWORD_ARGON2ID),
         ":email"=>$_POST['email']
    ]);

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 63
    Par défaut
    Bonjour,

    J'ai ajouté les PDO::PARAM_STR, cela n'a rien changé; j'ai essayé de mette le tableau dans $execute mais là aussi cela n'a rien changé!
    Il n'ajoute rien à ma base de données.
    Ce pourrait-il que le nombre de champs de mon formulaire qui n'est pas égal au nombre de colonne de ma base de données, fasse qu'il ne prenne pas ma requête?
    Si oui, puis-je faire un champ caché au visiteur qui resterait vide? Comme cela il y aurait le même nombre de champ que de colonne!
    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Quelle est la structure exacte de la table sql "validation" ?

    2- Les majuscules/minuscules sont-elles respectées ?

    3- Il manque la vérification des nom / prénom (obligatoires ?) et de l'email (validité)

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 63
    Par défaut
    Salut

    Table validation= id - nom - prenom - pseudo - passe - email - Val ( Le passe est haché)
    Mais dans la requête je ne fais pas allusion à Val.

    Je respecte les majuscules et minuscules.

    Je ne pense pas que le nom et le prenom et le mail doivent être vérifiés car s'il me donne un pseudo non pris je vérifie s'il fait bien partie du club, si c'est un nom, prenom ou mail bidon je ne lui donne pas accès!
    Merci d'avance

  6. #6
    Invité
    Invité(e)
    Par défaut
    Peut-on voir le formulaire ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/08/2006, 17h03
  2. conversion access vers autre base de données
    Par Anthony17 dans le forum Access
    Réponses: 1
    Dernier message: 16/06/2006, 13h50
  3. [Access 2002] Exporter des données vers une base Access 2.0
    Par SamLeChiseuji dans le forum Access
    Réponses: 27
    Dernier message: 01/06/2006, 11h41
  4. [XML] [EXPAT] D'un document Xml vers une base de données
    Par AlphonseBrown dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 07/12/2005, 12h15
  5. Extraction information *.txt vers une base de données
    Par Mr Capone dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/01/2005, 11h26

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