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

Langage PHP Discussion :

[Tableaux] Récupération de variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut [Tableaux] Récupération de variable
    Bonjour

    Voila, pour optimiser mon code, j'ai pondu une fonction de recuperation de variable apres un GET ou POST.

    Mais le probleme est que quand je rentre un espace ou caractere speciaux, la donnée n'est pas enregistrer dans MySql (enfin enregistrer jusqu'a l'espace).
    Je sais qu'il fait aussi ajouter addsplash() mais j'ai du mal.

    Voila mes fonctions


    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
    function recuperation_champ()
    {
         $tableau_champ="";
         foreach ($_POST as $champ => $valeur)
         {
             if ($tableau_champ != "")
                 $tableau_champ .= ", $champ";
             else
                  $tableau_champ = "$champ";
         }
         return $tableau_champ;
    }
     
    function recuperation_contenu()
    {
         $tableau_contenu ="";
         foreach ($_POST as $champ => $valeur)
         {
             if ($tableau_contenu != "")
                 $tableau_contenu .= ", '$valeur' ";
             else
                  $tableau_contenu = " '$valeur' ";
     
         }
         return $tableau_contenu;
    }
     
    function recuperation_variable()
    {
          $champ = recuperation_champ();
          $valeur = recuperation_contenu();
     
          $requete=mysql_query("insert into test ($champ) values ($valeur)") or die ("requête impossible : " . mysql_error());
          echo '<p align="center"><h1 align="center">Redirection automatique</p>';
          echo '<meta http-equiv="refresh" content="1;URL=../ />';
          return 0;
    }
    Et bien sur j'appelle la fonction recuperation_variable() quand j'ai des données à récupérer.


    Comme vous m'avez écouté, vous pouvez critiquer mon code

    PS : est ce judicieux de procédé avec des fonction?

  2. #2
    Membre averti
    Profil pro
    Développeur multimédia
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Par défaut
    Euh, lors de ta raquête, il ne faudrait pas que tu utilise aussi un foreach ? Puisque les résultats de tes fonctions semble être des tableaux. Le soucis c'est qu'il faudrait un tableau à double entrée style :

    A partir de là, si on pouvait arriver à ce niveau là, on pourrait utiliser un foreach pour pouvoir bien faire la requête. Enfin, je suis pas sur d'avoir compris ce que tu voulais.

    La sonction addslashes permet surtout d'ajouter des caractères d'échappement ("\") afin de protégé les caractères spéciaux, généralement l'apostre dite aussi simple quote.

  3. #3
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Le probleme est, je pense, le meme que en HTML (il me semble que tu l'as déja rencontré d'ailleurs ).

    Lorsque tu veux insérer une chaine avec des espaces dans la base, tu dois d'abord encadrer la valeur par des ' ' pour qu'elle soit prise en compte sinon la valeur enregistrée s'arrete a l'espace.

    Dans ton cas ca va te poser des problèmes pour tout ce qui est des valeurs entières parce qu'il ne faut pas leur mettre ces ' ' justement.

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour

    essaie : urlencode() + urldecode()

  5. #5
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Par défaut
    Si tu veux utiliser addslashes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_query("insert into test (champ) values (addslashes($valeur))") or die ("requête impossible : " . mysql_error());
    mais sache que pour enregistrer une chaine dans ta base tu dois l'encadrer de '$vars'. Si c'est un nombre "$vars".

    et addslashes tu l'utiliseras que pour du texte.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/05/2008, 05h28
  2. [Tableaux] Récupération des variables d'un serialize()
    Par Tchupacabra dans le forum Langage
    Réponses: 9
    Dernier message: 05/12/2007, 17h05
  3. Réponses: 23
    Dernier message: 21/12/2006, 22h47
  4. [Tableaux] Récupération de variables en vrac
    Par lacfab dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2006, 23h48
  5. [Tableaux] Récupération d'une variable
    Par grumly22 dans le forum Langage
    Réponses: 1
    Dernier message: 21/06/2006, 13h53

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