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 :

Erreur SQL à cause des '


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut Erreur SQL à cause des '
    Bonjour à tous

    Je ne suis pas un expert alors si vous pouviez me répondre comme a un débutant cela m'arrangerai

    je vais essayer de vous expliquer mon probleme, j'ai récupéré un petit logiciel et j'ai réussit a l'installer sur mon ftp, qui me permet de créer des fiches clients avec diverse information

    je ne comprend pas tout mais j'ai globalement réussit a obtenir ce que je voulais avec mes faibles connaissance en php et une découverte a taton de sql

    seul soucis je me rend compte une fois fini que lorsque je rentre une ' dans un des champs nom prénom etc cela me met une erreur sql (check the manual that corresponds to your MySQL server version for the right syntax to use near ' )

    un exemple de la partie qui insère l'adresse dans la bdd

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <tr><td width= "190" align="right"><font color="#000000">
    	<label for="adresse">Adresse :</label></td></font>
    	<td><input id="adresse" name="adresse" type="text" size="25" value="" maxlength="255" ></td></tr>

    alors je suppose que c'est un probleme tout con, j'ai cru comprendre qu'il y avait une grosse faille de sécurité si on laissé comme ça a cause des injections sql, mais cela ne me dérange pas vu que ca ne sera utilisé qu'en local pour un usage perso

    voila si vous pouvez me donner une manip a faire pour que je puisse mettre des ' dans mes champs cela m'aiderai

    Je vous souhaite de bonne fête a tous

    Cordialement

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Corriger la faille de sécurité résoudrait également ton problème. Le problème n'est pas SQL mais applicatif, il faut regarder du côté de PHP comment corriger ta faille, en fonction de ce que tu utilises (PDO, MySQLi, LibMySQL, ...).

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut
    merci pour la réponse

    par contre désolé si j'abuse, j'ai fait une recherche avec mon erreur et php et je ne trouve pas de solution claire sur google donc soit j'ai un probleme particulier ce dont je doute soit je ne sais pas poser la question a google , si vous pouviez m'aiguiller un peu plus, je vous en serais reconnaissant

    d’après ce que j'ai trouvé et compris mon probleme viendrais d'une ligne de commande qui dirais par exemple

    input dans la bdd le texte dans le champ ('adresse') au lieux de (adresse) ce qui couperai ma requête si je met une ' et interprète la suite comme une autre commande qui forcement devient inconnu seul problème je ne trouve pas dans tout mes fichiers ou se situe cette erreur en tout cas pas dans la page qui génère mes fiches (celle ou se trouve le code que je vous ai copié)

    donc je ne sais pas trop ou chercher

    merci d'avance, cordialement

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut
    Re bonjour

    j'ai avancé un petit peu, je pense avoir isolé une partie du code responsable

    j'ai trouvé dans un fichier fonction_creation_fiche.php ceci

    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
    <?php
    $suivi = $_POST['suivi'];
    $etatnom = $_POST['etatnom'];
    $sex = $_POST['sex'];
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $date = $_POST['date'];
    $telephone = $_POST['telephone'];
    $tel_portable= $_POST['tel_portable'];
    $panne_constatee = $_POST['panne_constatee'];
    $travail_effectue = $_POST['travail_effectue'];
    $main_doeuvre = $_POST['main_doeuvre'];
    $total = $_POST['total'];
    $remarque_service_technique = $_POST['remarque_service_technique'];
    $mdp = $_POST['mdp'];
    $type = $_POST['type'];
    $marque = $_POST['marque'];
    $modele = $_POST['modele'];
    $serial_number = $_POST['serial_number'];
    $technicien = $_POST['technicien'];
    $adresse = $_POST['adresse'];
    $cp = $_POST['cp'];
    $ville = $_POST['ville'];
    $elec = $_POST['elec'];
    $system = $_POST['system'];
     
    $query = "INSERT INTO fiche (id, sex, etatnom, suivi, nom, prenom, adresse, cp, ville, date, telephone, tel_portable, panne_constatee, travail_effectue, main_doeuvre, total, remarque_service_technique, mdp, type, marque, modele, serial_number, technicien, elec, system)
    VALUES ('', '$sex', '$etatnom', '$suivi', '$nom', '$prenom', '$adresse', '$cp', '$ville', '$date', '$telephone', '$tel_portable', '$panne_constatee', '$travail_effectue', '$main_doeuvre', '$total', '$remarque_service_technique', '$mdp', '$type', '$marque', '$modele', '$serial_number', '$technicien', '$elec', '$system')";
     
    $results = mysql_query($query) or die 
    ("Could not execute query : $query." . mysql_error());
     
    if ($results)
    {
    echo "";
    }
    d'pares mes recherche sur internet j'ai essayer de copier honteusement pour arriver a ce résultat

    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
    <?php
     
    $suivi = $_POST['suivi'];
    $etatnom = $_POST['etatnom'];
    $sex = $_POST['sex'];
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $date = $_POST['date'];
    $telephone = $_POST['telephone'];
    $tel_portable= $_POST['tel_portable'];
    $panne_constatee = $_POST['panne_constatee'];
    $travail_effectue = $_POST['travail_effectue'];
    $main_doeuvre = $_POST['main_doeuvre'];
    $total = $_POST['total'];
    $remarque_service_technique = $_POST['remarque_service_technique'];
    $mdp = $_POST['mdp'];
    $type = $_POST['type'];
    $marque = $_POST['marque'];
    $modele = $_POST['modele'];
    $serial_number = $_POST['serial_number'];
    $technicien = $_POST['technicien'];
    $adresse = $_POST['adresse'];
    $cp = $_POST['cp'];
    $ville = $_POST['ville'];
    $elec = $_POST['elec'];
    $system = $_POST['system'];
     
    $query=$db->prepare('INSERT INTO fiche (id, sex, etatnom, suivi, nom, prenom, adresse, cp, ville, date, telephone, tel_portable, panne_constatee, travail_effectue, main_doeuvre, total, remarque_service_technique, mdp, type, marque, modele, serial_number, technicien, elec, system);
                $query->bindValue(':sex', $sex, PDO::PARAM_STR);
                $query->bindValue(':etatnom', $etatnom, PDO::PARAM_STR);
    			$query->bindValue(':suivi', $suivi, PDO::PARAM_STR);
    			$query->bindValue(':nom', $nom, PDO::PARAM_STR);
                $query->bindValue(':prenom', $prenom, PDO::PARAM_STR);
    			$query->bindValue(':adresse', $adresse, PDO::PARAM_STR);
                $query->bindValue(':cp', $cp, PDO::PARAM_STR);
    			$query->bindValue(':ville', $ville, PDO::PARAM_STR);
                $query->bindValue(':date', $date, PDO::PARAM_STR);
    			$query->bindValue(':telephone', $telephone, PDO::PARAM_STR);
                $query->bindValue(':tel_portable', $tel_portable, PDO::PARAM_STR);
    			$query->bindValue(':panne_constatee', $panne_constatee, PDO::PARAM_STR);
                $query->bindValue(':travail_effectue', $travail_effectue, PDO::PARAM_STR);
    			$query->bindValue(':main_doeuvre', $main_doeuvre, PDO::PARAM_STR);
                $query->bindValue(':total', $total, PDO::PARAM_STR);
    			$query->bindValue(':remarque_service_technique', $remarque_service_technique, PDO::PARAM_STR);
                $query->bindValue(':mdp', $mdp, PDO::PARAM_STR);
    			$query->bindValue(':type', $type, PDO::PARAM_STR);
    			$query->bindValue(':marque', $marque, PDO::PARAM_STR);
    			$query->bindValue(':modele', $modele, PDO::PARAM_STR);
    			$query->bindValue(':serial_number', $serial_number, PDO::PARAM_STR);
    			$query->bindValue(':technicien', $technicien, PDO::PARAM_STR);
    			$query->bindValue(':elec', $elec, PDO::PARAM_STR);
    			$query->bindValue(':system', $system, PDO::PARAM_STR);
                $query->execute();
    
    $results = mysql_query($query) or die 
    ("Could not execute query : $query." . mysql_error());
    
    if ($results)
    {
    echo "";
    }
    mais ca ne fonctionne pas et je me retrouve avec cette erreur "Parse error: syntax error, unexpected ':' in /.../.../.../.../fonction_creation_fiche.php on line 60"

    comme si les : lui plaisait pas du coup je sais plus trop quoi essayer

    si vous avez des pistes une solution ou bien une corde et un tabouret je suis preneur , merci d’avance a ceux qui me lirons

    Cordialement

  5. #5
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Le problème se situant plus au niveau de PHP que de MYSQL, il serait plus opportun de le poser dans le forum "PHP".

    Pierre

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut
    le sujet a était déplacé par un modérateur je crois :p mon titre doit induire en erreur

Discussions similaires

  1. [MySQL] erreur sql lorsque des ' sont présents
    Par fey dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/07/2008, 11h11
  2. Gestion des erreurs SQL
    Par savior dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/05/2006, 11h35
  3. [SQL server 2005 express] liste des erreurs SQL serveur 2005
    Par critok dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/05/2006, 19h17
  4. [MySQL] Erreur sql pour inserer des checkbox
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/11/2005, 11h06
  5. Requete SELECT qui cause une erreur SQL
    Par ahage4x4 dans le forum ASP
    Réponses: 23
    Dernier message: 10/06/2005, 14h46

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