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 :

Passage de données via la méthode GET


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut Passage de données via la méthode GET
    Bonjour,

    J'essaye actuellement d'envoyer des informations par url mais c'est informations contiennent des espaces...

    Du coup ça brise mon lien si par exemple j'ai un lien tel que :
    <a href=nomdelapageencour?NUM=9&TITRE=Monsieur Madame&ect...
    le lien sera :
    <a href=nomdelapageencour?NUMERO=9&TITRE=Monsieur
    Pour remédier a cela j'ai fait :
    $url = str_replace(" ", "&#32", $url);
    Mais si dans mes informations j'ai :
    <a href=nomdelapage?telephone=01 54 48 76 97
    et bien cela va interpreter tel que :
    <a href=nomdelapage?telephone=01&#3254&#3248&#3276&#3297
    Du coup ça m'affiche des caractéres chinois (jeu de mot ac le subject )
    et non mon numéro de téléphone...

    Une idée?

    Merci pour votre aide.
    Cyril

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 46
    Par défaut
    Bonjour
    une idée comme ça:
    http://fr.php.net/urlencode
    en espérant que ça réponde à ta question

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut
    hélas je fais bien cela mais c'est le lien avec tbsooo (pour ceux qui connaissent) qui ne fonctionne pas bien en fait :s

    merci qd même gaetanc15!

    parcontre une fois le lien cliquer, j'arrive sur la seconde page et la j'aarive pas a
    utiliser convenablement urldecode()


    je récupére mes infos comme ceci :
    $NUMERO= (isset($_REQUEST['NUMERO']) ? $_REQUEST['NUMERO'] : "Je ne puis trouver les données...");

    mais je ne vois pas bien ou lancé le urldecode();

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 46
    Par défaut
    Sans un bout de code c'est pas évident à voir...
    si tu pouvais mettre le code de ton lien (voir si y a des variables dans l'url, ou si c'est du statique)

    enfin de toute façon sur la page nomdelapage.php?telephone=06&#3275&#3222
    tu peux toujours faire l'inverse de l'ajout :
    $telephone = str_replace("&#32", " ", $_GET['telephone']);

    mais ça fait pas très clean comme code je pense

  5. #5
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    rawurlencode puis rawurldecode ?
    Dia [ Page DVP ] [ Site pro ]

  6. #6
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Le '+' correspond à un espace dans une URL.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut
    Alors le code vien en trois fois, première partie, je construit l'url dans une
    boucle for, puis en affichant mes "currentfield" (colonne en cour) et mes "value" (valeur de l'occurence) je concaténe ma string $url :

    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
     
     
    // ici $_SESSION["v_table"]; vaut le nom de la table en cours d'utilisatoin qui 
    //équivaut a un certain fichier .php qui varie selon la table.
    //Par exemple si $_SESSION["v_table"] = "client"; alors on sera rediriger sur //client.php
    $url = $_SESSION["v_table"];
    $url .= ".php?";
     
    //boucle for
    	else if( $action == "OpenDocument" )
    	{					
    	        echo "$currentfield = ";
    		echo "$value<br><br>";
    		$url .= $currentfield;
    		$url .= "=";
    		if ($value == "")
    			$value = " ";
    		$url .= $value;
    		$url .= "&";
    	}
     
    //Je détruit le dernier "&" et je rajoute un "\0" en fin de string mais je vien du //C je ne sait pas si c'est nécéssaire.
    $url = substr($url, 0, -1);
    // je remplace " " par le code ascii de " " pour éviter que le lien se brise
    $url = str_replace(" ", "&#32", $url);
    $url .= "\0";
    Ceci nous donne un url semblable à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //en code :
    <a href=$url> Cliquez ici </a>
     
    //En claire ça donne ca : (echo $url)
    TEMPCVRECRUT2.php?NUMERO=9602/003&TITRE=Monsieur Madame&NOMPRENOM=DESIN Thierry&DATENAIS=1900-07-24&NATIONALITE=Française&ETATCIVIL=Marié, un enfant&PROFIL=INGENIEUR&EXPERIENCE=6 - +5 ANS&ACTIVITE=4 - SYSTEMES/RESEAUX&FORMATION=6 - BAC+6&MATERIELS=DPS7, PC&SYSTEMES=GCOS7, VMS, MS/DOS, WINDOWS95&RESEAUX=NETWARE, NOVELL, OSI, TCP/IP, X25, ETHERNET, X400, INTERNET, WINDOWS/NT
     
    //Si je ne fais pas le str_replace dans la construction de $url ca brise le lien //au premier espace :
    TEMPCVRECRUT2.php?NUMERO=9602/003&TITRE=Monsieur
    De l'autre coté je récupére dans le php mes variables de cette manière :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    include_once('tbs_class.php');
    include_once('tbsooo_class.php');
     
    $NUMERO= (isset($_REQUEST['NUMERO']) ? $_REQUEST['NUMERO'] : "Je ne puis trouver les donnÈes...");
    $TITRE= (isset($_REQUEST['TITRE']) ? $_REQUEST['TITRE'] : "Je ne puis trouver les donnÈes...");
    $NOMPRENOM= (isset($_REQUEST['NOMPRENOM']) ? $_REQUEST['NOMPRENOM'] : "Je ne puis trouver les donnÈes...");
    $DATENAIS= (isset($_REQUEST['DATENAIS']) ? $_REQUEST['DATENAIS'] : "Je ne puis trouver les donnÈes...");
    $NATIONALITE= (isset($_REQUEST['NATIONALITE']) ? $_REQUEST['NATIONALITE'] : "Je ne puis trouver les donnÈes...");
    $ETATCIVIL= (isset($_REQUEST['ETATCIVIL']) ? $_REQUEST['ETATCIVIL'] : "Je ne puis trouver les donnÈes...");
    $PROFIL= (isset($_REQUEST['PROFIL']) ? $_REQUEST['PROFIL'] : "Je ne puis trouver les donnÈes...");
    //ainsi de suite
    et je récupére toutes ses données dans un opendocument de la maniére suivante :
    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
     
    [var.NUMERO;htmlconv=no]
    [var.TITRE;htmlconv=no]
    [var.NOMPRENOM;htmlconv=no]
    [var.DATENAIS;htmlconv=no]
    [var.NATIONALITE;htmlconv=no]
    [var.ETATCIVIL;htmlconv=no]
    [var.PROFIL;htmlconv=no]
    [var.EXPERIENCE;htmlconv=no]
    [var.ACTIVITE;htmlconv=no]
    [var.FORMATION;htmlconv=no]
    [var.MATERIELS;htmlconv=no]
    [var.SYSTEMES;htmlconv=no]
    [var.RESEAUX;htmlconv=no]
    //htmlconv=no permet d'afficher correctement les caractéres spéciaux tels //que "ç" ou "é"
    Tout ceci marche parfaitement et génére un Opendocument writer avec une mise en page automatique ect...

    Sauf que on as vu plus haut que str_remplace(" ", "&#32", $url) est essentiel car il empéche le lien de se briser au premier espace, mais lorcequ'il y a un espace suivit d'un chiffre ça donne :

    system=windows 2003 ---> et je récupere dans mon opendocument windows "UnChiffreChinoi" :s car je pense qu'il interpréte windows&#322003

    J'ai pensé a mettre cela dans la boucle for mais ça ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if ($value == )
      $value = " ";
    for ($count = 0; $count < strlen($value); $count++)
       {
         if ($value[$count] == " ")
             while ($value[$count] = " ")
                   $count++;
         if ($value[$count] <= '9' && $value[$count] >= '0')
             $value[$count] = ' ';
       }
    quand je rajoute ça bah du coup qd ca lance automatiquement openoffice il me dit erreur de lecture
    erreur de données dans le document content.xml ...

    Trop dégouté si quelqu'un as des commantaires sur le code ou une solution a mon prob merci bcp

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

Discussions similaires

  1. [MySQL] Passage d'arguments avec la méthode GET
    Par stefanelle dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/02/2009, 00h23
  2. Envoi de données via la méthode POST
    Par mrsoyer dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2008, 12h56
  3. Réponses: 5
    Dernier message: 15/06/2007, 17h43
  4. [AJAX] Passage de 2 paramètres avec la méthode GET
    Par furth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/06/2007, 17h18
  5. [Servlet] Méthode Get : récupérer données de l'url
    Par david71 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 01/02/2005, 12h52

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