kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 18 déc. 2006 à 11:37
http_build_query n'a rien d'obscure... c'est une fonction native de php5 et je te donne le code équivalant pour php4... elle génère une chaine de requete à partir d'un tableau ou d'un objet... .. .
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 15 déc. 2006 à 18:10
masternico, passe comme argument un guillemet double, simple ou autre, tu verras comment ça chie...
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 15 déc. 2006 à 16:20
Bon bon, j'ai corrigé le code, mais je n'ai pas reussi à inclure foreach() à cause du fait que le premier argument est précédé du signe "?" et les autres du signe "&"...
mais comme le souligne coucou747, je débute de chez débute... :D
en fait j'apprends sur le tas, donc comme pour toutes les méthodes empiriques, il faut faire des erreurs pour avancer. ;D
>>coucou747: Par contre, je n'ai pas saisis la subtilité du double échapement des '. ni des arguments avec " dedans... pourrais tu approfondir?
>>sebastiennauer: j'irais visiter les liens que tu m'as fourni
tcho tcho et merci
sebastiennauer
Messages postés3Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention15 décembre 2006 15 déc. 2006 à 15:13
Voila deux sites de références qui me servent au quotidien :
- http://www.alsacreations.com/ : Site en Francais pour apprendre le CSS, XHTML
- http://www.w3schools.com/ : Site en anglais avec des exemples dans pleins de langages pour le web
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 15 déc. 2006 à 14:57
à mon avis, les ' seront échapés deux fois... c'est pas bon du tout pour les arguments qui peuvent en contennir... Bref, ça peut buger sur les caractères échapables, et ça peut aussi merder dans les arguments qui ont un " dedans...
De plus, c'est vraiment simple comme exemple, même pour débutant
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 15 déc. 2006 à 14:49
Salut tout le monde, Merci pour vos commentaires.
>>sebastiennauer: tout à fait d'accord. En fait, alors que j'écris ces ligne je me suis mis au CSS mais c'est balèse et j'ai eu du mal à trouver la doc complète de la terminologie (http://www.w3.org/TR/1999/REC-CSS1-19990111) (en anglais).
>>kankrelune: merci pour le if(!empty()), je l'oubli tout le temps celui la.
J'ai mis du temps à saisir la pertinense de ta remarque sur $_REQUEST. Cela rejoint une remarque qu'il m'a déja étée faite sur un autre code: mon source est trop spécifique à mon application générale.
Si j'utilise $_REQUEST, c'est parcequeje me réserve le droit d'injecter des arguments pour simuler la validation d'un formulaire. Et comme je sais que le nombre des arguments reçut vari entre 2 et 4, je ne me suis pas posé la question à savoir si $_REQUEST ne pouvait pas contenir autre chose que les arguments que j'attends.
Donc bof bof effectivement... ;)
je vais corriger et utiliser $_GET et $_POST, parceque ton source http_buil_machin c'est encore trop obscur pour moi et je ne veux pas utiliser des sources que je ne comprend pas. J'ai fait mes premiers pas dans l'utilisation des class mais la terminoligie encore me manque et j'ai du mal à trouver des bouquins serieux qui en parle
Voila voila. En tout cas merci pour vos post et à bientôt.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 14 déc. 2006 à 12:12
C'est plus que bof bof ton truc... tu utilise $_REQUEST mais $_REQUEST utilise comprend les données $_GET, $_POST et $_COOKIE... tu envois les données $_POST et $_COOKIE dans l'url toi... .. ?
ensuite tu test qu'il y a des arguments après avoir récupéré les clées autant faire un
if(!empty($_GET))
avant de récupérer les clées... d'ailleurs il est inutile de récupérer les clées autant faire directement un foreach sur le tableau... sinon devrais plutot utiliser la fonction http_build_query() et si tu est sous php4...
function http_build_query( $formdata, $numeric_prefix null, $arg_separator null)
{
if (is_object($formdata))
$formdata = get_object_vars($formdata);
if (!is_array($formdata))
{
trigger_error('http_build_query() Parameter 1 expected to be Array or Object. Incorrect value given.',E_USER_WARNING);
return false;
}
elseif(empty($formdata))
return '';
18 déc. 2006 à 11:37
http://fr3.php.net/http_build_query
Tu prend le code que je t'ais mis et tu fais...
<FRAME src="mapage1.php?<?php echo http_build_query($_GET); ?>">
Pourquoi réinventer la roue... .. . ;o)
@ tchaOo°
15 déc. 2006 à 18:10
15 déc. 2006 à 16:20
mais comme le souligne coucou747, je débute de chez débute... :D
en fait j'apprends sur le tas, donc comme pour toutes les méthodes empiriques, il faut faire des erreurs pour avancer. ;D
>>coucou747: Par contre, je n'ai pas saisis la subtilité du double échapement des '. ni des arguments avec " dedans... pourrais tu approfondir?
>>sebastiennauer: j'irais visiter les liens que tu m'as fourni
tcho tcho et merci
15 déc. 2006 à 15:13
- http://www.alsacreations.com/ : Site en Francais pour apprendre le CSS, XHTML
- http://www.w3schools.com/ : Site en anglais avec des exemples dans pleins de langages pour le web
15 déc. 2006 à 14:57
De plus, c'est vraiment simple comme exemple, même pour débutant
15 déc. 2006 à 14:49
>>sebastiennauer: tout à fait d'accord. En fait, alors que j'écris ces ligne je me suis mis au CSS mais c'est balèse et j'ai eu du mal à trouver la doc complète de la terminologie (http://www.w3.org/TR/1999/REC-CSS1-19990111) (en anglais).
>>kankrelune: merci pour le if(!empty()), je l'oubli tout le temps celui la.
J'ai mis du temps à saisir la pertinense de ta remarque sur $_REQUEST. Cela rejoint une remarque qu'il m'a déja étée faite sur un autre code: mon source est trop spécifique à mon application générale.
Si j'utilise $_REQUEST, c'est parcequeje me réserve le droit d'injecter des arguments pour simuler la validation d'un formulaire. Et comme je sais que le nombre des arguments reçut vari entre 2 et 4, je ne me suis pas posé la question à savoir si $_REQUEST ne pouvait pas contenir autre chose que les arguments que j'attends.
Donc bof bof effectivement... ;)
je vais corriger et utiliser $_GET et $_POST, parceque ton source http_buil_machin c'est encore trop obscur pour moi et je ne veux pas utiliser des sources que je ne comprend pas. J'ai fait mes premiers pas dans l'utilisation des class mais la terminoligie encore me manque et j'ai du mal à trouver des bouquins serieux qui en parle
Voila voila. En tout cas merci pour vos post et à bientôt.
14 déc. 2006 à 12:12
ensuite tu test qu'il y a des arguments après avoir récupéré les clées autant faire un
if(!empty($_GET))
avant de récupérer les clées... d'ailleurs il est inutile de récupérer les clées autant faire directement un foreach sur le tableau... sinon devrais plutot utiliser la fonction http_build_query() et si tu est sous php4...
function http_build_query( $formdata, $numeric_prefix null, $arg_separator null)
{
if (is_object($formdata))
$formdata = get_object_vars($formdata);
if (!is_array($formdata))
{
trigger_error('http_build_query() Parameter 1 expected to be Array or Object. Incorrect value given.',E_USER_WARNING);
return false;
}
elseif(empty($formdata))
return '';
if(is_null($arg_separator))
$arg_separator = ini_get('arg_separator.output');
$build_query = '';
foreach ($formdata as $key => $val)
{
if (is_numeric($key) && !is_null($numeric_prefix))
$key = $numeric_prefix.$key;
if(is_scalar($val))
$build_query .= urlencode($key).'='.urlencode($val);
else
$build_query .= _http_build_query($val, urlencode($key), $arg_separator);
$build_query .= $arg_separator;
}
return substr($build_query,0,-strlen($arg_separator));
}
function _http_build_query ($array, $name, $separator)
{
$tmp = '';
foreach ($array as $key => $value)
{
if (is_scalar($value))
$tmp .= $name.'['.urlencode($key).']='.urlencode($value);
elseif(is_array($value))
$tmp .= _http_build_query($value, $name.'['.urlencode($key).']',$separator);
elseif (is_object($value))
$tmp .= _http_build_query(get_object_vars($value), $name.'['.urlencode($key).']',$separator);
$tmp .= $separator;
}
return substr($tmp,0,-strlen($separator));
}
@ tchaOo°
13 déc. 2006 à 23:55