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 :

Probleme de récuperation de variable [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Par défaut Probleme de récuperation de variable
    bonsoir,

    Voila j' aurai voulu eviter les nombreuses lignes qui stocke par exemple :

    $test1 = $_POST['Modele1'] ;

    Mais quand je fais direct dans ma requete SQL voir le code plus loin ( VALUES ('$_POST['Modele1']',

    Ben ça me fait une erreur :

    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\pagesdinsertion.php on line 50

    J' ai essayer d' échapper les caracteres et tout mais je trouve vraiment pas

    C' est pourquoi je me tourne vers vous car a chaque fois je m' embete a tout restocker dans une autre variable mais ça se trouve c' est la façon logique de faire....

    Merci de votre aide

    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
    $test1 = $_POST['Modele1'] ;
    $test2 = $_POST['SerialNumber1'] ;
    $test3 = $_POST['etat1'] ;
    $test4 = $_POST['date1'] ;
    $test5 = $_POST['bon_de_livraison1'] ;
    $test6 = $_POST['Grossiste1'] ;
    $test7 = $_POST['Integrateur1'] ;
    $test8 = $_POST['Client_Final1'] ;
    $test9 = $_POST['Remarque1'] ;
    $test10 = $_POST['Maintenance1'] ;
    $test11 = $_POST['debut_de_maintenance1'] ;
    $test12 = $_POST['Fin_de_maintenance1'] ;
    $test13 = $_POST['Type_de_maintenance1'] ;
    $test14 = $_POST['debit1'] ;
    $test15 = $_POST['cpr1'] ;
    $test16 = $_POST['Socle1'] ;
    $test17 = $_POST['SuiteSoft1'] ;
    $test18 = $_POST['Annee1'] ;
    $test19 = $_POST['Mois1'] ;
    $test20 = $_POST['Semaine1'] ;
     
    $sql="INSERT INTO `etat en cours` ( `Modèle` , `Numéro de série` , `état` , `date` , `bon de livraison` , `grossiste` , `intégrateur` , `client final` , `remarque` , `Maintenance` , `date de debut de maintenance` , `date de fin de maintenance` , `type de maintenance` , `debit` , `licence_CPR` , `Socle` , `SuiteSoft` , `Annee` , `Mois` , `Semaine` )  VALUES (
    '$_POST['Modele1']', '$test2', '$test3', '$test4', '$test5' , '$test6' , '$test7' , '$test8' , '$test9' , '$test10' , '$test11' , '$test12' , '$test13' , '$test14' , '$test15' , '$test16' , '$test17' , '$test18' , '$test19' , '$test20')";

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 17
    Par défaut
    slt
    je crois que ta requête d'inseertion ne reconnait pas :
    Modèle` , `Numéro de série` , `état` , `date`...
    elle va reconnaitre que : test1 test2....

    essayes juste :
    $sql="INSERT INTO `etat en cours` VALUES (
    '$_POST['Modele1']', '$test2', '$test3', '$test4', '$test5' , '$test6' , '$test7' , '$test8' , '$test9' , '$test10' , '$test11' , '$test12' , '$test13' , '$test14' , '$test15' , '$test16' , '$test17' , '$test18' , '$test19' , '$test20')";

  3. #3
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonjour,

    J'ai pas réellement regardé ton code, mais une chose est sûr, tous les caractères spéciaux sont à éviter en tant que titre de champs d'une table.

    Donc remplace:

    Modèle par Modele , Numéro de série par Numero_de_serie , état par etat etc...

    ++

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Par défaut
    Bon j' ai du mal m' exprimer je pense donc en faite les accents et tout le reste aucun probleme sur les 10 autres pages.

    Le probleme vient de la requete notamment du car si je le remplace par $test1 j' ai aucune erreur donc je voulais juste savoir si quelqu' un sait ou arriver a mettre direct les valeur $_POST['xxxxxxxxx'] dans une requete sql ?

    Car moi j' arrive pas a les mettre sans avoir d erreur parse ou expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'

    Voila c' était juste ça ma demande sinon mon code fonctionne sans probleme si je lui dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // stock en $test1 ce que vaut $_POST['Modele1']
    $test1 = $_POST['Modele1'] ;
     
    // requete fonctionnant sans $_POST['xxxxxxxxx']
    $sql="INSERT INTO `etat en cours` ( `Modèle` , `Numéro de série` , `état` , `date` , `bon de livraison` , `grossiste` , `intégrateur` , `client final` , `remarque` , `Maintenance` , `date de debut de maintenance` , `date de fin de maintenance` , `type de maintenance` , `debit` , `licence_CPR` , `Socle` , `SuiteSoft` , `Annee` , `Mois` , `Semaine` )  VALUES (
    '$test1', '$test2', '$test3', '$test4', '$test5' , '$test6' , '$test7' , '$test8' , '$test9' , '$test10' , '$test11' , '$test12' , '$test13' , '$test14' , '$test15' , '$test16' , '$test17' , '$test18' , '$test19' , '$test20')";
    Donc je pense c' est surement tout con un mauvais échappement des caractères mais je vois pas comment après multueux essai infructueux !

    Ce qui fait je me tape plein de restockage pour rien je présume....

  5. #5
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    Ha oui en effet,

    La concaténation ce fait ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    VALUES (
    '".$_POST['Modele1']."', ...
    ++

    [EDIT: en effet, c'est concaténation et non échappement, mille excuses ]

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Vous utilisez une concaténation (et non un échappement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql="INSERT INTO `etat en cours` ( `Modèle` , `Numéro de série` , `état` , `date` , `bon de livraison` , `grossiste` , `intégrateur` , `client final` , `remarque` , `Maintenance` , `date de debut de maintenance` , `date de fin de maintenance` , `type de maintenance` , `debit` , `licence_CPR` , `Socle` , `SuiteSoft` , `Annee` , `Mois` , `Semaine` )  VALUES (
    '" . $_POST['Modele1'] . "', '$test2', '$test3', '$test4', '$test5' , '$test6' , '$test7' , '$test8' , '$test9' , '$test10' , '$test11' , '$test12' , '$test13' , '$test14' , '$test15' , '$test16' , '$test17' , '$test18' , '$test19' , '$test20')";
    Ou une interpolation que vous devez corriger en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql="INSERT INTO `etat en cours` ( `Modèle` , `Numéro de série` , `état` , `date` , `bon de livraison` , `grossiste` , `intégrateur` , `client final` , `remarque` , `Maintenance` , `date de debut de maintenance` , `date de fin de maintenance` , `type de maintenance` , `debit` , `licence_CPR` , `Socle` , `SuiteSoft` , `Annee` , `Mois` , `Semaine` )  VALUES (
    '{$_POST['Modele1']}', '$test2', '$test3', '$test4', '$test5' , '$test6' , '$test7' , '$test8' , '$test9' , '$test10' , '$test11' , '$test12' , '$test13' , '$test14' , '$test15' , '$test16' , '$test17' , '$test18' , '$test19' , '$test20')";
    Veillez à sécuriser vos données avant de faire votre requête via mysql_real_escape_string (pour MySQL ou alors trouvez son équivalent) (par contre si magic_quotes_gpc est actif il faudrait déjà appliquer stripslashes sur vos données externes).

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

Discussions similaires

  1. [MySQL] probleme pour récuperer la bonne variable
    Par toma03 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 14/06/2007, 10h35
  2. [AJAX] Récuperation de variable POST sous Firefox
    Par Phenomenium dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/11/2006, 15h22
  3. Réponses: 3
    Dernier message: 01/09/2005, 11h56
  4. [web] Probleme de passe de variable qd j utilise un module TK
    Par Slippers dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 19/04/2005, 17h48
  5. [VB.NET] Problem de récupération de variable avec une DLL
    Par ludovic85 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 19/01/2005, 11h37

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