Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/11/2006, 15h44   #1
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 27
Points : 27
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 :
Citation:
<a href=nomdelapageencour?NUM=9&TITRE=Monsieur Madame&ect...
le lien sera :
Citation:
<a href=nomdelapageencour?NUMERO=9&TITRE=Monsieur
Pour remédier a cela j'ai fait :
Citation:
$url = str_replace(" ", "&#32", $url);
Mais si dans mes informations j'ai :
Citation:
<a href=nomdelapage?telephone=01 54 48 76 97
et bien cela va interpreter tel que :
Citation:
<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
xaaros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 16h26   #2
Membre du Club
 
Inscription : juin 2003
Messages : 46
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 46
Points : 43
Points : 43
Bonjour
une idée comme ça:
http://fr.php.net/urlencode
en espérant que ça réponde à ta question
__________________
Gaétan
gaetanc15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 16h35   #3
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 27
Points : 27
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();
xaaros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 16h45   #4
Membre du Club
 
Inscription : juin 2003
Messages : 46
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 46
Points : 43
Points : 43
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
__________________
Gaétan
gaetanc15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 16h47   #5
Membre chevronné
 
Avatar de Dia_FR
 
Homme Aurélien
Développeur Web
Inscription : avril 2006
Messages : 510
Détails du profil
Informations personnelles :
Nom : Homme Aurélien
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 510
Points : 643
Points : 643
rawurlencode puis rawurldecode ?
__________________
Dia [ Page DVP ] [ Blog ] [ Site pro ]
Dia_FR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 17h08   #6
Membre Expert
 
Avatar de Hephaistos007
 
Inscription : décembre 2004
Messages : 1 304
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 304
Points : 1 387
Points : 1 387
Le '+' correspond à un espace dans une URL.
__________________
Mieux vaut mobiliser son intelligence sur des conneries que sa connerie sur des choses intelligentes. [SHADOKS]

Cours sur la programmation pour SmartPhones Android (Requière la lecture du cours sur la programmation Java)
Hephaistos007 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 11h36   #7
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 27
Points : 27
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 :
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 :
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 :
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 :
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 :
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
xaaros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 12h37   #8
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 27
Points : 27
Petite faute de frappe dans le dernier bout de code la derniére ligne
$value[$count] = "-";
comme ça si j'ai telephone=01 54 47 98 55 ça écrit 01-54-47-98-55
xaaros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 16h11   #9
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Salut, personnellement, pour ce genre de choses, utilisation de string avec des espaces, j'y ajoute des "_"

ex : "monsieur paul" devient "monsieur_paul" dans l'url. Pour le téléphone, c pareil.

Je prend un codeur décodeur pour que ce soit transparent pour l'utilisateur.

Sur mon site, l'utilisateur peut créer un diaporama qu'il peut nommer avec des caractères spéciaux, ca marche windows, linux...

Code :
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
 
function stringToLinuxString($string)
{
	$res = str_replace(" ", "_", $string);
	$res = str_replace("é", "eaigu", $res);
	$res= str_replace("è", "egrave", $res);
	$res= str_replace("à", "agrave", $res);
	$res= str_replace("ê", "ecirc", $res);
	$res= str_replace("â", "acirc", $res);
	$res= str_replace("î", "icirc", $res);
	$res= str_replace("û", "ucirc", $res);
 
	return $res;
}
 
function linuxStringToString($string)
{
	$res = str_replace("_", " ", $string);
	$res = str_replace("eaigu", "é", $res);
	$res= str_replace("egrave", "è", $res);
	$res= str_replace("agrave", "à", $res);
	$res= str_replace("ecirc", "ê", $res);
	$res= str_replace("acirc", "â", $res);
	$res= str_replace("icirc", "î", $res);
	$res= str_replace("ucirc", "û", $res);
 
	return $res;
}
J'utilise ces deux fonctions..

Espérant t'avoir aidé...

++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 10h32   #10
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 41
Points : 27
Points : 27
Par défaut ça marche pas :s

hélas, quand je change des caractéres dans $url quand
openoffice lance le chargement de la page il fait une erreur :

Erreur de lecture.
Erreur de format dans le fichier du sous-document content.xml à la position
2,4314(row,col).

Du coup ça ne génére même pas une page avec des differences par rapport aux information données dans le site mais carement rien du tout...
La je suis vraiment bloquer, j'ai cette erreur si jutilise une fonction similaire a urlencode() et urldecode()...
xaaros est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h45.


 
 
 
 
Partenaires

Hébergement Web