FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
9 déc. 2005 à 16:15
cs_chapata
Messages postés214Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 9 avril 2010
-
15 mai 2006 à 17:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_chapata
Messages postés214Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 9 avril 20105 15 mai 2006 à 17:04
Alors la , un grand merci !!!!!
dommage que je ne peux pas valider ta réponse ...
Mais je la valide à l'écrit quand même !!!
ChapaTa
ravery
Messages postés34Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention23 mars 20071 15 mai 2006 à 15:41
Tes input 'offre' doivent être un tableau.
Essaye ceci tu comprendra mieux :
<form method="post" action="test.php">
</form>
<?php
echo '';
var_dump($_POST);
echo '
';
?>
cs_chapata
Messages postés214Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 9 avril 20105 15 mai 2006 à 15:25
Salut ...
il est peut etre un peu tard pour répondre à ce message ... (lol)
j'ai un problème de variable ...
J'ai ma page HTML, avec plusieurs input de type texte qui contienne la liste des fichiers contenu dans un répertoire (le nombre de fichier varie ... donc le nombre d'input aussi). C'est input porte le même tous le même nom "offre".
Pour simplifier ma question, j'ai 2 inputs qui portent le même nom.
Je valide mon formuliare en methode POST, et je veux bien sur récupérer de l'autre coté, la valeur de chaque input "offre".
Est-ce que c'est techniquement possible ?
J'ai essayer ça mais cela ne marche pas :
For ($i = 0 ;$i< count($_POST['offre'];$i++){
echo $_POST['offre'][$i];
}
cela me retourne uniquement une lettre par rapport à l'index $i.
En essayant la source de ce message, je ne vois pas toutes mes variables de même nom postées.
Y a t'il une fonction ou un code du type javascript 'formulaire.offre.length' qui éxiste ?
Si une âme charitable veut bien m'aiguiller sur la direction à prendre ... je suis preneur.
Chapata
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 12 déc. 2005 à 15:38
c'est pas mal, t'as aussi le white-space:pre; qui fait la même chose en CSS (si tu veux foutre ça dans une balise code par exemple).
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 12 déc. 2005 à 15:02
Tant qu'on y est...
je te présente ma fontion de débuggage. Avec un mixte de toutes celles présentées ici, on peut faire un truc pas mal...
<?php
// cette fonction est très vielle, si je devais la ré-écrire, je ne ferais plus comme ça...
function dump( /* nom des variables */ ) {
if( func_num_args()==0 ) {
echo 'dump() sans argument !?!\n';
}
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 12 déc. 2005 à 12:23
salut RAVERY...
tu as raison, c'est $GLOBALS (sans le underscore). Si tu n'aime pas print_r, il y'a var_export() que je trouve un peu mieux.
Ensuite, tu semble ignorer le deuxième paramêtre de ces fonctions...
$texte = var_export($GLOBALS, TRUE);
Voilà, ce genre de source est toujours utile...
Bon débuggage
ravery
Messages postés34Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention23 mars 20071 12 déc. 2005 à 11:14
Là oui. steph666, joli coup. Par contre pourquoi vous obstiner - vous à mettre un underscore avant le global, chez moi ca ne marche pas, il me faut juste un $GLOBALS. Etrange tout ca j'update la source en citant steph666 comme auteur.
Steph666
Messages postés74Date d'inscriptionjeudi 6 mars 2003StatutMembreDernière intervention 5 juin 2008 12 déc. 2005 à 10:53
Salut,
un petit
print "";
print_r($_GLOBALS);
print "
";
et le tour est joué.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 11 déc. 2005 à 13:32
"Ben, honnetement, quand on voit la gueule d'un print_r (ou var_dump), ca donne généralement pas envie de lire. "
Oh quand même !
Tu vois les associations clé/valeur assez facilement avec le numéro d'index en plus !
Mais c'est vrai que des fois c'est assez déroutant quand y'a un paquet de choses.
Par contre, si j'ai une seule remarque à te faire concernant ton code, c'est au niveau de tes echo(). Tu fais des : echo "truc-machin $youpla "; alors que c'est très moche. Utilise les '' au lieu des "" ! Ce qui doit donner : echo 'truc-machin '.$youpla;
Faut uniformiser le tout :)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 10 déc. 2005 à 20:51
bah htmlentities() et un str_replace("\n",'
') dans le print_r, ça fait déjà mieux :-)
ravery
Messages postés34Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention23 mars 20071 10 déc. 2005 à 18:57
Ben, honnetement, quand on voit la gueule d'un print_r (ou var_dump), ca donne généralement pas envie de lire.
Si on pouvait faire un nl2br(print_r($GLOBALS)), ou simili, je ne dis pas, mais c'est pas possible.
C'est pour ca que j'ai fait ce bout de code... (j'aime pas réinventer la roue, je l'améliore)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 10 déc. 2005 à 18:52
Salut,
"Je n'y peux rien, mon hebergeur les à a ON, donc je le copie. et ca m'arrive d'avoir des conflits."
dans un htaccess : php_flag register_globals off
"Certains hébergeurs ont le addslashes automatique sur un requete (ovh par exemple) ce que je trouve pire en terme de sécurité"
au contraire ça t'évite les failles de sql injection d'avoir ça à on par défaut, mais bon avoir une fonction qui traite ce genre de cas est pas mal non plus ;-)
a +
bubuze
Messages postés31Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention25 avril 2006 10 déc. 2005 à 15:42
vous êtes tous très bons ! une très belle pages de commentaires. continuez les uns, appréciez les autres !
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 10 déc. 2005 à 14:57
un :
print_r($_GLOBALS);
aurait donné la même chose à peu de chose près aussi :)
pichpoich
Messages postés26Date d'inscriptionlundi 5 janvier 2004StatutMembreDernière intervention29 janvier 2009 9 déc. 2005 à 23:38
Je viens d'essayer ce code sur le site que je suis en train de développer (je trouvais que ça ramait), j'ai des variables de session dans tous les sens (normal, j'en utilise beaucoup, mais je ne savais pas à quel point).
C'est énorme, je vais mettre ce code sur ma clef usb et je ne sors plus sans.
Merci Ravery.
ravery
Messages postés34Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention23 mars 20071 9 déc. 2005 à 17:17
Je n'y peux rien, mon hebergeur les à a ON, donc je le copie. et ca m'arrive d'avoir des conflits.
Certains hébergeurs ont le addslashes automatique sur un requete (ovh par exemple) ce que je trouve pire en terme de sécurité. Pour les register global ON, il suffit d'initialiser un variable avant de l'utiliser (comme en C quoi).
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 9 déc. 2005 à 16:15
"Il arrive parfois qu'on ai un conflit de nom de variable entre les sessions, les cookies et les variables mêmes."
Non ==> register_globals "Off" et on en parle plus !
Avec ca, les variables en type GET sont dans $_GET, POST dans $_POST, COOKIE dans $_COOKIE, SERVEUR dans $_SERVER...
15 mai 2006 à 17:04
dommage que je ne peux pas valider ta réponse ...
Mais je la valide à l'écrit quand même !!!
ChapaTa
15 mai 2006 à 15:41
Essaye ceci tu comprendra mieux :
<form method="post" action="test.php">
</form>
<?php
echo '';
var_dump($_POST);
echo '
';
?>
15 mai 2006 à 15:25
il est peut etre un peu tard pour répondre à ce message ... (lol)
j'ai un problème de variable ...
J'ai ma page HTML, avec plusieurs input de type texte qui contienne la liste des fichiers contenu dans un répertoire (le nombre de fichier varie ... donc le nombre d'input aussi). C'est input porte le même tous le même nom "offre".
Pour simplifier ma question, j'ai 2 inputs qui portent le même nom.
Je valide mon formuliare en methode POST, et je veux bien sur récupérer de l'autre coté, la valeur de chaque input "offre".
Est-ce que c'est techniquement possible ?
J'ai essayer ça mais cela ne marche pas :
For ($i = 0 ;$i< count($_POST['offre'];$i++){
echo $_POST['offre'][$i];
}
cela me retourne uniquement une lettre par rapport à l'index $i.
En essayant la source de ce message, je ne vois pas toutes mes variables de même nom postées.
Y a t'il une fonction ou un code du type javascript 'formulaire.offre.length' qui éxiste ?
Si une âme charitable veut bien m'aiguiller sur la direction à prendre ... je suis preneur.
Chapata
12 déc. 2005 à 15:38
12 déc. 2005 à 15:02
je te présente ma fontion de débuggage. Avec un mixte de toutes celles présentées ici, on peut faire un truc pas mal...
<?php
// cette fonction est très vielle, si je devais la ré-écrire, je ne ferais plus comme ça...
function dump( /* nom des variables */ ) {
if( func_num_args()==0 ) {
echo 'dump() sans argument !?!\n';
}
$args = func_get_args();
foreach( $args as $value ) {
global $$value;
if( isset($$value) ) {
echo "
\$$value => ".gettype($$value)."
";
echo(str_replace(array("\n"," "),array("
\n"," "),var_export($$value,true)));
} else {
echo "
'\$$value' n'existe pas
";
}
}
echo '
';
}
// comment faire ? on passe le nom des variables, pas les variables !
dump('_SERVER', 'pouet', '_POST', 'a');
?>
12 déc. 2005 à 12:26
function afficher_tableau($tableau, $nomfic "", $tab "") {
if (is_array($tableau)) {
foreach ($tableau as $cle => $valeur) {
if (is_array($valeur)) {
print $cle.' => ';
@afficher_tableau($valeur);
print '';
} else {
print $cle." = ".$valeur."
";
}
}
} else {
print $tableau;
}
}.
Stéph.
12 déc. 2005 à 12:23
tu as raison, c'est $GLOBALS (sans le underscore). Si tu n'aime pas print_r, il y'a var_export() que je trouve un peu mieux.
Ensuite, tu semble ignorer le deuxième paramêtre de ces fonctions...
$texte = var_export($GLOBALS, TRUE);
Voilà, ce genre de source est toujours utile...
Bon débuggage
12 déc. 2005 à 11:14
12 déc. 2005 à 10:53
un petit
print "";
print_r($_GLOBALS);
print "
";
et le tour est joué.
11 déc. 2005 à 13:32
Oh quand même !
Tu vois les associations clé/valeur assez facilement avec le numéro d'index en plus !
Mais c'est vrai que des fois c'est assez déroutant quand y'a un paquet de choses.
Par contre, si j'ai une seule remarque à te faire concernant ton code, c'est au niveau de tes echo(). Tu fais des : echo "truc-machin $youpla "; alors que c'est très moche. Utilise les '' au lieu des "" ! Ce qui doit donner : echo 'truc-machin '.$youpla;
Faut uniformiser le tout :)
10 déc. 2005 à 20:51
') dans le print_r, ça fait déjà mieux :-)
10 déc. 2005 à 18:57
Si on pouvait faire un nl2br(print_r($GLOBALS)), ou simili, je ne dis pas, mais c'est pas possible.
C'est pour ca que j'ai fait ce bout de code... (j'aime pas réinventer la roue, je l'améliore)
10 déc. 2005 à 18:52
"Je n'y peux rien, mon hebergeur les à a ON, donc je le copie. et ca m'arrive d'avoir des conflits."
dans un htaccess : php_flag register_globals off
"Certains hébergeurs ont le addslashes automatique sur un requete (ovh par exemple) ce que je trouve pire en terme de sécurité"
au contraire ça t'évite les failles de sql injection d'avoir ça à on par défaut, mais bon avoir une fonction qui traite ce genre de cas est pas mal non plus ;-)
a +
10 déc. 2005 à 15:42
10 déc. 2005 à 14:57
print_r($_GLOBALS);
aurait donné la même chose à peu de chose près aussi :)
9 déc. 2005 à 23:38
C'est énorme, je vais mettre ce code sur ma clef usb et je ne sors plus sans.
Merci Ravery.
9 déc. 2005 à 17:17
Certains hébergeurs ont le addslashes automatique sur un requete (ovh par exemple) ce que je trouve pire en terme de sécurité. Pour les register global ON, il suffit d'initialiser un variable avant de l'utiliser (comme en C quoi).
9 déc. 2005 à 16:15
Non ==> register_globals "Off" et on en parle plus !
Avec ca, les variables en type GET sont dans $_GET, POST dans $_POST, COOKIE dans $_COOKIE, SERVEUR dans $_SERVER...
Plus aucune possibilité de se tromper !