[newbie]Passer un tableau dans une url ?

[Résolu]
Signaler
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonjour à tous,

Comment faire pour passer un tableau si il on lui dit que

$tab = @unserialize( stripslashes( base64_decode( $_GET['tab'] ) ) );
...
if( !is_array( $tab ) )
echo ('Erreur => Initialisation à tableau vide' );
...
if($tab['test]=='salut')
....
else
.....

je voudrais arriver à une url du style => 02.php?tab[test]=salut (mais cela ne fonctionne pas)

Merci de votre aide

DOS-chkdsk-2K6

17 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,


dans ce cas


echo '[monlien.php?tab=', base64_encode(addslashes(serialize($tab))), ' monlien]


mais sache que c'est parfaitement débile...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">


<?php
$tab=array('salut, c \' est chico !', 'mon nom est chico !');
echo '[?tab ='.base64_encode(addslashes(serialize($tab))).' suivre]';
print_r(unserialize( stripslashes( base64_decode( $_GET['tab'] ) ) ));
?>

si on te donne une solution, c'est qu'elle marche !!!

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,


moi je passe des tableaux par cookies parfois :






<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

base64_encode(serialize($visites_cookies_d))


pour le déserialize :




<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

unserialize(base64_decode($_COOKIE['moncookie']));


c'est la même méthode pout le $_GET, et pas besoin de passer par un stripslashes...


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

Salut coucou747,

je dois passer par l'url :( et avoir" $tab = @unserialize( stripslashes( base64_decode( $_GET['tab'] ) ) );"

DOS-chkdsk-2K
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

pourquoi ? pourquoi ce stripslashes ? et pourquoi ce @ ??? ma méthode est beaucoups mieux...



echo '[monlien.php?tab=', base64_encode(serialize($tab)), ' monlien]



récupération :



$tab=unserialize(base64_decode($_GET['tab']));


passer par l'url n'est pas un problème, mais pour le stripslashes, et pour le @, c'est nul...


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Oui, stripslashes ne sert à rien.

La méthode à coucou747 est la meilleur, de toute facon, t'auras pas mieux, parce que ca n'existe pas !

"02.php?tab[test]=salut" <== URL impossible à créer, ne te fatigue pas à l'inventer :)
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

Salut FhX et coucou747

Quand tu dit ""02.php?tab[test]=salut" <== URL impossible à créer, ne te fatigue pas à l'inventer :)"

elle fonctionne (mais bon je sais pas si cela est bon car je suis newbie ...)

[http://membres.lycos.fr/callantdavid/TEST_PHP/01.php?tab[test]=teett http://membres.lycos.fr/callantdavid/TEST_PHP/01.php?tab[test]=teett] (va te dire erreur)
[http://membres.lycos.fr/callantdavid/TEST_PHP/01.php?tab[test]=Maison http://membres.lycos.fr/callantdavid/TEST_PHP/01.php?tab[test]=Maison] (va te dire ok)

et le code est

<?php


if( !is_array( $tab ) )
die( 'Erreur ... Initialisation à tableau vide' );


if( $tab['test'] == 'Maison')
{
echo "Bravo => Vous avez entré : ";
echo $tab['test'];
echo " !!! ";
}

else
{
echo "Raté => Vous avez entré : ";
echo $tab['test'];
echo " !!! ";
}

?>

Pour ce qui est du probleme ... j'ai trouvé sur un site un challenge en php ... et il donne comme code source


<?php
$data = @unserialize( stripslashes( base64_decode( $_GET['data'] ) ) );

if( !is_array( $data ) )
die( 'Erreur ... Initialisation à tableau vide' );

if( $data['login'] == 'Claire' && $data['password'] == md5('Love') )
echo 'Bravo';
else
echo 'Raté';
?>
J'arrive à lui donner les bonnes valeurs quand il n'y a pas la 1er ligne et tout fonctionne bien mais dès que je l'ajoute pas moyen ... :(

@++

DOS-chkdsk-2K6
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

Ben je suis newbie donc je n'y connais pas grand chose ... mais pourrait tu me dire ce que cela change ?
Merci de ton aide ;) Je vais le tester ;)

Et je te dit déjà bonnne année 2006 ;)

DOS-chkdsk-2K
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,
ça ne change pas grand chose, mais la, tu ajoutes des \
devant les caractères ', \ et ", ces \ sont enlevés ensuite par
stripslashes...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

Dommage sur le site ca passe pas :(

ben je vais essayer un autre challenge alors :(

DOS-chkdsk-2K
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"Quand tu dit ""02.php?tab[test]=salut" <== URL impossible à créer, ne te fatigue pas à l'inventer :)"

elle fonctionne (mais bon je sais pas si cela est bon car je suis newbie ...)"

D'un, parce que ca ne sert à rien, de 2, tu peux avoir énormément de problème par la suite. Pourquoi aucun site n'utilise le passage de tableau par variable URL ? Simplement parce que c'est infaisable !

De plus :
if( !is_array( $tab ) )
die( 'Erreur ... Initialisation à tableau vide' );
> par :
if ( !isset($_GET['tab']) || !is_array($_GET['tab'] ) die ('...'); // C'est mieux comme ca.

De toute facon, tu ne peux pas faire comme ca, car les indices d'un tableau associatif sont du types : $key['var'] = $val et non $key[var] = $val.

Voila pourquoi ca ne marche tout simplement pas ( un tableau numérique peut-être, mais l'utilité est nulle).
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

t'es pas obligé de faire des MP !!! mon code marche !

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Bravo, vous avez trouvé la solution pour ce level.

Le mot de passe pour valider ce level est



bon, je ne vais pas te filler le password quand même, maintenant, tu sais recopier !!!

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

Ben je voudrais surtout savoir ce que tu as mit dans l'url car il me dit toujours "Erreur ... Initialisation à tableau vide" :(

Et encore merci pour votre aide ;)

DOS-chkdsk-2K
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

je t'ai dit que je ne ferais pas tout à ta place !!!

t'as juste le tableau à modifier sur le code du haut !!!!


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
144
Date d'inscription
mardi 2 septembre 2003
Statut
Membre
Dernière intervention
18 septembre 2007

Saluuutt,

J'ai réussi (le mdp commence par un S et termine par ER )

mais je sais pas si j'ai utilisé la bonne méthode, j'ai crée une page avec le code et je l'ai envoyé vers la page catch.php ?

Merci de ton aide ;) T'es super ;)

DOS-chkdsk-2K
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

fais réponse accèptée stp

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)