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 :

Impossibilité de trouver mes données dans ma base avec phpmyadmin


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Impossibilité de trouver mes données dans ma base avec phpmyadmin
    bonjour

    j'ai codé la requête sql suivante, je ne reçois pas de message d'erreur

    je ne récupère pas les données dans la base
    voilà le code 2 fichiers

    merci


    1) connection.php

    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
    <?php
     
    DEFINE('serveur','localhost');
    DEFINE('user','root');
    DEFINE('mdp','mdp1');
    DEFINE('db','reflink');
     
    $dbcon= mysqli_connect(serveur,user,mdp,db);
     
    if (!$dbcon){
    die ('error');
    }
     
    echo 'connected';
     
    ?>

    2)ins.php

    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
    <?php
     
    if (isset($_POST['submitted'])){
       include_once('connection.php');
     
     
       $fname=$_POST['fname'];
       $lname=$_POST['lname'];
       $sqlinvest="INSERT INTO refmail (First_Name, Last_Name) VALUES ('$fname','$lname)";
     
       if (!mysqli_query($dbcon,$sqlinsert)){
          die ('error inserting');
     
       }
    }
    ?>
     
    <html>
    <head>
    <title> insert data </title/>
    </head>
        <body>
    	<h1> insert data </h1>
     
    	<form method = "post" action "ins.php">
    	<input type = "hidden" name "submitted" value "true"/>
    	<field set>
    	       <legend> new people </legend>
    		   <label> First_Name : <input type "text" name="fname"/> </label>
    		   <label> Last_Name : <input type "text" name="lname"/> </label>
        </field set>
     
    	<br/>
    	<input type = "submit" value = "enregistrer" />
    	</form>
     
    	</body>
    </html>

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour et Bienvenue sur Developpez.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO refmail (First_Name, Last_Name) VALUES ('$fname','$lname)
    Il te manque le guillemet fermante
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO refmail (First_Name, Last_Name) VALUES ('$fname','$lname')
    Pour éviter ce genre de problème, et les injections SQL, utilise un preparedStatement.

    A+.

  3. #3
    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
    Il manque surtout une bonne requête préparée : on ne met pas des données POST dans une requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $stmt = $dbcon->prepare("INSERT INTO refmail (First_Name, Last_Name) VALUES (?, ?)");
    $stmt->bind_param("ss", $_POST['fname'], $_POST['lname']);
    $stmt->execute();
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Je me permets de rebondir sur la publication de @sabotage pour avoir des explications.

    Pourquoi ? Pourquoi il ne faut pas passer des données POST directement, et que les bind soit mieux?

    Et en supposant un GET?
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  5. #5
    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
    Il ne faut pas mettre directement des données provenant d'une source externe (POST, GET, fichier etc.)
    Déjà la présence de ' ou " casseraient la chaine et feraient planter la requête.
    Surtout cela pose le problème d'injection malveillante : https://fr.wikipedia.org/wiki/Injection_SQL
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Que ce soit un post ou get ou autre valeur lu d'ailleurs, on doit utiliser une requête préparée (preparedStatement) pour les valeurs dans une requête pour éviter une injection sql, les guillemets qui tronquent la chaîne, assurer les formats de donnée. Et c'est valide dans les autres langages (java, C#, ...). Ici, sabotage a donnée un exemple pour mysqli, mais il y a aussi pour PDO et les autres extensions pour base de données.

    A+.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonsoir

    désolé de n'avoir pu répondre plus tôt

    j'ai réécris le code avec le nouveau code mais je ne récupère rien dans la base de données
    voilà le code complet
    merci

    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
    <?php
     
    DEFINE('serveur','localhost');
    DEFINE('user','root');
    DEFINE('mdp','511232');
    DEFINE('db','reflink');
     
    $dbcon= mysqli_connect(serveur,user,mdp,db);
     
    if (!$dbcon){
    die ('error');
    }
     
    echo 'connected';
     
    ?>




    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
    <?php
    if (isset($_POST['submitted'])){
       include_once('connection.php');
     
     
       $stmt = $dbcon->prepare("INSERT INTO refmail (First_Name, Last_Name) VALUES (?, ?)");
       $stmt->bind_param("ss", $_POST['fname'], $_POST['lname']);
       $stmt->execute();
     
    }
    ?>
     
     
    <html>
    <head>
    <title> insert data </title/>
    </head>
        <body>
    	<h1> insert data </h1>
     
    	<form method = "post" action "ins.php">
    	<input type = "hidden" name "submitted" value "true"/>
    	<field set>
    	       <legend> new people </legend>
    		   <label> First_Name : <input type "text" name="fname"/> </label>
    		   <label> Last_Name : <input type "text" name="lname"/> </label>
        </field set>
     
    	<br/>
    	<input type = "submit" value = "enregistrer" />
    	</form>
     
    	</body>
    </html>

  8. #8
    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
    Est-ce que tu obtiens bien le "connected" ?

    Affiche $mysqli->error après ta requête pour voir ce qui se passe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    oui, j'ai toujours obtenu le "connected"

Discussions similaires

  1. [AJAX] saisie de donnée dans la base avec Ajax
    Par Invité dans le forum AJAX
    Réponses: 3
    Dernier message: 24/11/2010, 04h37
  2. Réponses: 1
    Dernier message: 30/11/2009, 22h50
  3. Réponses: 11
    Dernier message: 22/05/2008, 14h11
  4. j'arrive pas à insérit tous mes donnée dans ma base
    Par thecharmer dans le forum Général Java
    Réponses: 1
    Dernier message: 24/04/2008, 18h03
  5. enregistrer des données dans une base avec jboss jbpm
    Par paolo2002 dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 19/09/2007, 11h56

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