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 dans une base de donnée mysql via un formulaire


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut insertion des données dans une base de donnée mysql via un formulaire
    bonjour à tous
    il y a déjà 3 mois que je n'arrive pas a avancé avec php suite à la connexion avec la bdd mysql. j ai crée une bdd nommé membre, la table agent avec 3 champs id,nom,prenom. id est au_increment.
    je vous envoi le code d'insertion et l'eurreur.

    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
    <?php
    // on verifie la presence pour eviter des erreurs
    $nom=$_POST('nom')
    $prenom=$_POST['prenom']
    //connexion a la bdd
    $lien=new PDO ('mysql :host=localhost; db=membre','root','');
     
    //creation de la requete sql
    $sql="INSERT INTO agent (' $nom','$prenom');
    $reponse= $lien->exec ($sql);
    //on teste sur le retour et on affiche une une erreur en cas de soucis
    if(! $reponse)
       {
          echo (' insertion impossible)
    }else
       echo ('ajout effectue')
      return
      $lien;
    }
    catch (Exception echoue au  serveur');
    }
    ?>
    voici l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec($sql); if(! $reponse) { echo('insertion impossible'); }else echo('ajout effectue') return $lien; } catch(Exception $erreur) { echo('connexion echoue au serveur'); } ?>
    merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Août 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    SLT moi pour mon formulaire j'ai fait comme ceci et ça marche tres bien:
    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
     
    <?php
     
    // on teste si le visiteur a soumis le formulaire
     
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
     
    	// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
     
    	if ( !empty($_POST['login']) && !empty($_POST['email']) && !empty($_POST['pass']) && !empty($_POST['pass_confirm']) && !empty($_POST['nom']) && !empty($_POST['prenom'])) {
     
         // on teste si syntaxe email est exacte 
    	else {
     
    		$connexion = mysqli_connect ('localhost', 'root', '', 'mysql');
     
    		//mysql_select_db ('mysql', $base);
     
     
     
    		// on recherche si ce login est déjà utilisé par un autre membre
     
    		$sql = 'SELECT count(*) FROM membres WHERE login="'.mysqli_escape_string($connexion, $_POST['login']).'"';
     
    		$req = mysqli_query($connexion, $sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error($connexion));
     
    		$data = mysqli_fetch_array($req);
     
     
     
    		if ($data[0] == 0) {
     
    		$sql = 'INSERT INTO membres VALUES("", "'.mysqli_escape_string($connexion, $_POST['login']).'", "'.mysqli_escape_string($connexion, $_POST['email']).'", "'.mysqli_escape_string($connexion, md5($_POST['pass'])).'", "'.mysqli_escape_string($connexion, $_POST['nom']).'", "'.mysqli_escape_string($connexion, $_POST['prenom']).'" )';
     
    		$req = mysqli_query($connexion, $sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error($connexion));
     
     
     
    		session_start();
     
    		$_SESSION['login'] = $_POST['login'];
     
    		header('Location: membre.php');
     
    		exit();
     
    		}
     
    		else {
     
    		$erreur = '<p style="color:#9C1900;">Un membre possede deja ce login.</p>';
     
     	    }
     
        }
    	}
     
    }
     
    ?>
    PS:Ma table se nomme "membres"
    Les info sont bien insérée dans ma table donc tu peux faire comme ça,en espérant t'avoir aidé

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    oui quand j ai essayé d'executer on me renvoi un message d'erreur à partir de:
    '.$sql.'
    .mysqli_error($connexion)); $date=mysqli_fetch_array($req) jusqu'a la fin
    que dois je faire, peut etre j ai oublié quelque truc

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Attention, le code de Samix utilise mysqli alors que ton code d'origine utilise PDO. Il faut choisir : c'est l'un ou l'autre, pas les deux en même temps dans le même script.

    Ensuite, ce que tu as ne ressemble pas à un message d'erreur, ça m'a davantage l'air d'un morceau de ton code. Pour vérification, si tu affiches la source de ta page dans ton navigateur (clic-droit > "Afficher le code source de la page" ou équivalent en fonction de ton navigateur), qu'est-ce que tu obtiens ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

    1-
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nom=$_POST('nom')
    $prenom=$_POST['prenom']
    C'est quoi cette "syntaxe" (des parenthèses ?? pas de ; à la fin...) ??

    2- il manque une apostrophe " avant le ;
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="INSERT INTO agent (' $nom','$prenom');

    3- D'autre part, il faut faire une requête préparée.

    4- $lien=new PDO (...). Utilise un autre nom de variable : $pdo ou $cnx par exemple ($lien va finir par entrainer une confusion...)



    En 3 mois, tu n'as pas eu le temps de LIRE la documentation ??

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    mon deuxieme message c'est le code de Samix que j'ai copié, pu executé en local. Je n'est pa pu associé les deux scripte, lui a utilisé API mysqli, moi PDO. Mon souçi est ainsi, pouriez vous m'aidé à corriger mon script d'origine en m'expliquant clairement ce que j'ai oublié ou ce que je peux faire. merci d'avance

  7. #7
    Invité
    Invité(e)
    Par défaut

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    Bonsoir
    j'ai essayé avec la réquete préparée on m'affiche un morceau de code.
    voici mon script de connexion avec la réquete préparée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    try
    {
    $bdd = new PDO ('mysql:host=localhost;dbname=membre;charset=utf8','root','');
    }catch (Execption $e)
    {
    die ('Erreur; :'. $->getMessage());
    }
    //insertio à la bdd avec la réquete préparée
    $req = $bdd->prepare('INSERT INTO agent (nom, prenon) VALUES (?,?)');
    $req->execute(array($_POST['nom'],$_POST['prenom']));
    ?>
    Merci d'avance

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    je m'excuse je pense bien oublier php à l'ouverture " <?php " toujours un même maureau de code

  10. #10
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Août 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par ketauguy Voir le message
    je m'excuse je pense bien oublier php à l'ouverture " <?php " toujours un même maureau de code
    et ça marche maintenant?

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    non, juste un maurceau de code

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par Celira Voir le message
    Pour vérification, si tu affiches la source de ta page dans ton navigateur (clic-droit > "Afficher le code source de la page" ou équivalent en fonction de ton navigateur), qu'est-ce que tu obtiens ?
    Tu obtiens le code PHP dans la source de ta page ? dans son intégralité ?

    Tu as bien un script avec une extension .php accédé par un serveur PHP ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    bonsoir à tous
    celira quand je fais clic droit, j'obtiens la page et le code source en intergralité.
    sans extension php.

  14. #14
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ketauguy Voir le message
    re-bonsoir
    après avoir verifié les tutos,faq et cours mon code semble etre vrai, mais en executant on me renvoi un maurceau code pas une erreur. et quand je fais clic droit code source dans mon navigateur j'ai mon script en intégralité sans l'extension php.
    merci d'avance de votre aide à ce problème.

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

    Peux-tu nous re-montrer :
    • le nom du fichier (avec l'extension)
    • l'encodage du fichier (utf-8 sans bom ?)
    • ton code ?
    • le morceau de code qui s'affiche ?


    Il semble que ce soit le > de $lien->exec qui ferme la balise <?php.

  16. #16
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    voice mon code de connexion et le maurceau de code
    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
     
    <?php
    try
    {
    //connexion à la bdd
    $bdd = new PDO (mysql:host=localhost;dbname=membre Charset=utf-8','root',");
    }cath(Execption $e)
    {
    die('Erreur;:'.$->getMessage());
    }
    //insertion dans bdd avec la réquete préparée
    $req = $bdd->prepare(INSERT INTO agent(nom,prenom)  VALUES(??)');
    $req->execute(array($_POST['nom'],$_POST['prenom']
    ));
    ?>
    ce maurceau de code ci-dessous on m'affiche après avoir remplir mon formulaire et cliquer sur bouton enregistrer:
    cath(Execption $e){die('Errer;:'.$->getMessage());}$req=$bdd->prepare(INSERT INTO agent(nom,prenom)VALUES(??)');$req->excute(array($_POST['nom'],$_POST['prenom']));?>
    le maurceau est sur une même ligne
    LE NOM DE MON FICHIER C'EST : insertiom.php

    encodage du fichier utf-8 sans bom je n'est pas compris une explication svp
    merci d'avance

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

    1- il manque une ' sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO (mysql:host=localhost;dbname=membre Charset=utf-8','root',");
    2- et ici : La classe PDOException
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catch(PDOException $e){
    Il faut FAIRE ATTENTION à la syntaxe !

    3- Et quant au fait que le code PHP soit affiché à l'écran : ton fichier n'est pas interprété correctement comme étant du PHP.
    Qu'utilises-tu (en local) ?
    • Wamp Server ?
    • EasyPHP ?
    • ... ?




    N.B. On écrit "morceau"

  18. #18
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    merci pour la remarque, j'utilise wamp server en local

  19. #19
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    bonsoir
    j'utilise wampserver en local et mon chemin est: c/wamp/www/site
    merci d'avance

  20. #20
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Et tu accèdes bien au script par son url (quelque chose de la forme http://localhost/site/script.php) ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [MySQL] Problème d'insertion des accents dans une base de donnée MYSQL
    Par maroon1970 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/08/2011, 18h35
  2. insertion des image dans une base de données oracle
    Par tayeb_dev dans le forum Oracle
    Réponses: 2
    Dernier message: 12/08/2011, 01h48
  3. Réponses: 1
    Dernier message: 24/12/2010, 13h06
  4. insertion des blob dans une base de données
    Par ala1986 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/04/2009, 15h48
  5. Réponses: 5
    Dernier message: 10/01/2008, 08h47

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