[newbie]Passer un tableau dans une url ?

Résolu
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007 - 28 déc. 2005 à 18:11
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 29 déc. 2005 à 12:59
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

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
29 déc. 2005 à 11:15
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)
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
29 déc. 2005 à 11:58
<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)
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 déc. 2005 à 18:20
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)
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
28 déc. 2005 à 18:34
Salut coucou747,

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

DOS-chkdsk-2K
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 déc. 2005 à 18:46
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)
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
29 déc. 2005 à 01:26
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 :)
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
29 déc. 2005 à 10:05
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
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
29 déc. 2005 à 11:18
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
29 déc. 2005 à 11:28
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)
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
29 déc. 2005 à 11:52
Dommage sur le site ca passe pas :(

ben je vais essayer un autre challenge alors :(

DOS-chkdsk-2K
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
29 déc. 2005 à 12:02
"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).
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
29 déc. 2005 à 12:06
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)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
29 déc. 2005 à 12:11
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)
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
29 déc. 2005 à 12:13
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
29 déc. 2005 à 12:18
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)
0
CHKDSK2K Messages postés 144 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 18 septembre 2007
29 déc. 2005 à 12:36
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
29 déc. 2005 à 12:59
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)
0
Rejoignez-nous