Mettre un tableau en session

Eléphant du PHP | 216 Messages

28 févr. 2010, 12:44

Bonjour,

actuellement je met mes messages d'erreurs dans un tableau
		if ($dataa['id_adh'] != $_SESSION["mail"]){ $erreur[] = '<div class="textac">Vous n\'êtes pas le destinataire de ce message</div>';}
		if ($dataa['efface'] == '1'){ $erreur[] = '<div class="textac"> Ce message à été effacé</div>';}

J'aimerais mettre ce tableau en session afin de pouvoir afficher le contenu dans une autre page,

savez-vous comment je pourrais faire ?

merci d'avance.

Eléphanteau du PHP | 12 Messages

28 févr. 2010, 12:54

Et pourquoi pas :
$_SESSION['erreur'] = $erreur;

Eléphant du PHP | 216 Messages

01 mars 2010, 14:09

Ben ça marche pas vraiment...

Voilà ce que j'ai fait

		if ($dataa['efface'] == '1'){ $erreur[] = '<div class="textac"> Ce message à été effacé</div>';}
		if ($dataa['efface'] == '1'){ $erreur[] = '<div class="textac"> Ce message à été effacé par vous !</div>';}
$_SESSION['erreur'] = $erreur;

et quand je suis dans l'autre page, je code

echo $_SESSION["erreur"];

La seule réponse que j'ai c'est : array()...
Mes messsage d'erreur ne s'affichent pas...

Eléphant du PHP | 398 Messages

01 mars 2010, 16:05

Ne faut-il pas un session_start() en début de page ?
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Mammouth du PHP | 985 Messages

01 mars 2010, 16:29

Ajoute cette ligne en tout début de page, donc juste après <?php:
error_reporting(-1);
http://www.php.net/manual/fr/function.e ... orting.php
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
AB
ViPHP | 5818 Messages

01 mars 2010, 18:32

Ne faut-il pas un session_start() en début de page ?
C'est effectivement indispensable et très probablement l'origine du pb surtout si le test est en local.

Pour les serveurs distants, certains hébergeurs (petite minorité) demandent la création d'un répertoire spécifique pour stoker les sessions sans quoi les sessions ne fonctionnent pas.

Mammouth du PHP | 985 Messages

01 mars 2010, 19:23

Le problème ne se limite pas à l'ouverture de session.
avec un:
error_reporting(-1);
Tout devrait s'éclaircir.

J'en profite pour préciser qu'il est indispensable d'afficher toutes les erreurs possibles.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 mars 2010, 00:46

Euh.... les session_start et les error_reporting c'est bien, mais il n'y a ici ni problème de session, ni erreur a éclaircir...

L'objet de ce topic est "mettre un tableau en session" et quand on demande à php d'afficher un tableau au lieu de lui faire afficher une valeur, il se contente d'afficher "Array()" puisqu'il n'a pas la moindre idée de ce que vous lui voulez :)

Précise l'index de l'élément du tableau que tu veux afficher, ou utilise un foreach, bref travail avec $_SESSION["erreur"] comme si c'était un tableau puisque c'est un tableau ! ;)
echo $_SESSION["erreur"][0]; // affiche la valeur contenue dans le tableau à l'index 0
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 985 Messages

02 mars 2010, 01:01

Exact, le simple fait que l'echo renvoie : array().
Démontre que non seulement la session est initialisée mais aussi que la valeur de $erreur est bien assignée en tant que tableau et est bien transmise...
print_r($_SESSION["erreur"]);
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.