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 :

envoi vers base de donnée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut envoi vers base de donnée
    bonjour,

    Je rencontre un problème lorsque j'envoi mes données vers ma base de données. Je ne sais pas comment contourner le problème. J'ai lu sur d'autre problème que c'était parce que mon php n'était pas à jour (plus précisément qu'il fallait la version 5.5 pour que "password_default" puisse fonctionner. J'ai donc réinstaller une version plus récente mais rien n'y change... .

    Message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Notice: Use of undefined constant password_default - assumed 'password_default' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php on line 8
     
    Warning: password_hash() expects parameter 2 to be long, string given in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php on line 8
     
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php:60 Stack trace: #0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php(60): PDOStatement->execute(Array) #1 {main} thrown in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php on line 60
    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
    65
    <?php
     
     
    $pass = 'mdp';
     
     
     
    $hash = password_hash($pass, password_default);
     
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=fonctions', 'root', '',   $pdo_options);
     
    $erreurs = [];
    if(empty($_POST['nom'])) {
        $erreurs[] = 'Veuillez entrer un nom';
    } else {
        $stmt = $bdd->prepare('SELECT COUNT(*) FROM abonnes WHERE nom = :nom');
        $stmt->execute(['nom' => $_POST['nom']]);
        if ($stmt->fetchColumn()) {
            $erreurs[] = 'Ce nom est déjà utilisé';
        }
    }
    if(empty($_POST['Prénom'])) {
        $erreurs[] = 'Veuillez entrer un Prénom';
    }
    if(empty($_POST['mdp'])) {
        $erreurs[] = 'Veuillez entrer un mot de passe';
    } elseif($_POST['mdp'] != $_POST['mdp_confirm']) {
        $erreurs[] = 'mots de passes différents ';
     
    }
    if(empty($_POST['mail'])) {
        $erreurs[] = 'Veuillez entrer un mail';
    } elseif($_POST['mail'] != $_POST['mail_confirm'])
    {
        $erreurs[] = 'les deux adresses emails sont différentes ';
    }	
    if(empty($_POST['Adresse'])) {
        $erreurs[] = 'Veuillez entrer une Adresse';
    }
    if(empty($_POST['CP'])) {
        $erreurs[] = 'Veuillez entrer un code postal';
    }
    if(empty($_POST['Ville'])) {
        $erreurs[] = 'Veuillez entrer une ville';
    }
    if ($erreurs) {
        echo '<ul><li>', implode('</li><li>', $erreurs), '</li></ul>';
    } else {
     
    	$req = $bdd->prepare('INSERT INTO abonnes(nom, Prénom, mdp, mail, Adresse, CP, Ville) VALUES(:nom, :Prénom, :mdp, :mail, :Adresse, :CP, :Ville)');
        $req->execute([
            'nom' => $_POST['nom'],
    		'Prénom' => $_POST['Prénom'],
            'mdp' => $_POST['mdp'],
            'mail' => $_POST['mail'],
    		'Adresse' => $_POST['Adresse'],
    		'CP' => $_POST['CP'],
    		'Ville' => $_POST['Ville'],
        ]);
     
        header('Location: inscription.php');
    }
     
    ?>
    Ma version de php est 5.5.8.

    $version_easyphp = "14.1";
    $version_apache = "2.4.7";
    $version_php = "5.5.8 VC11";
    $version_mysql = "5.6.15";
    $version_phpmyadmin = "4.1.4";
    $version_xdebug = "2.2.3";
    ?>

    Merci d'avance à celui qui pourra m'aider!

  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
    C'est PASSWORD_DEFAULT en majuscules.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci mais ça ne change rien

    En parcourant différents sites, je suis tombé sur ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function generateHash($password) {
        if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {
            $salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22);
            return crypt($password, $salt);
        }
    }
    mais j'ai toujours le même message d'erreur... . Et pourtant, me configuration de php est bonne.
    Dernière modification par sabotage ; 26/07/2015 à 15h13.

  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 dis que tu as toujours l'erreur
    Notice: Use of undefined constant password_default
    ?

    Si oui c'est que tu l'as toujours écrit en minuscules.
    Si non c'est que tu n'as plus la même erreur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité
    Invité(e)
    Par défaut
    Non, pour le premier, il est disparu lorsque je l'ai mis en majuscule.

    Je voulais dire que le second message d'erreur est toujours là (désolé je me suis mal exprimé).


    message d'erreur actuel :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php:61 Stack trace: #0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php(61): PDOStatement->execute(Array) #1 {main} thrown in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Nouveau dossier (2)\script_inscription.php on line 61

  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
    Enlève l'accent à Prénom pour voir.
    De plus uniformise tes dénominations : pourquoi il y a une majuscule à Prénom, Adresse et Ville mais pas à nom ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $req = $bdd->prepare('INSERT INTO abonnes (nom, prenom, mdp, mail, adresse, CP, ville) VALUES(:nom, :prenom, :mdp, :mail, :adresse, :CP, :ville)');
        $req->execute([
            ':nom' => $_POST['nom'],
    	':Prenom' => $_POST['Prenom'],
            ':mdp' => $_POST['mdp'],
            ':mail' => $_POST['mail'],
    	'adresse' => $_POST['Adresse'],
    	':CP' => $_POST['CP'],
    	':ville' => $_POST['Ville'],
        ]);
    Idem pour tes champs de formulaire et tes colonnes de table, ne met pas d'accents.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Invité
    Invité(e)
    Par défaut
    c'était bien un problème d'accent ... . Et dire que j'ai cherché des heures et des heures. Maintenant c'est sûr que je mettrai plus JAMAIS d'accent

    Oui je vais tout mettre en minuscule.

    En tout cas merci beaucoup

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

Discussions similaires

  1. Probleme de date dans requete SQL vers base de donnée MS Access
    Par Uren dans le forum Persistance des données
    Réponses: 1
    Dernier message: 04/08/2008, 13h06
  2. [SSIS][2k5] Import depuis XML vers Base de donnée
    Par Sinclair dans le forum SSIS
    Réponses: 4
    Dernier message: 24/01/2008, 11h25
  3. Données Excel vers Base de données
    Par godmich dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/11/2007, 18h23
  4. transfert DataSource vers Base de Données
    Par PadawanDuDelphi dans le forum Bases de données
    Réponses: 6
    Dernier message: 12/09/2006, 11h22
  5. Importation CSV vers base de données
    Par Brice Yao dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/06/2005, 13h42

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