Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2367 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  unset() ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

unset() ?

n°1197591
freed102
Arayashiki
Posté le 12-09-2005 à 14:28:37  profilanswer
 

question rapide...
 
yaurait-il un moyen rapide pour supprimer des variables à la volée plutot que de faire des unset à la suite mais sans detruire la session completement ? et eventuellement en pouvant mettre des exceptions ?
 
 


---------------
Freed102
mood
Publicité
Posté le 12-09-2005 à 14:28:37  profilanswer
 

n°1197594
sielfried
Posté le 12-09-2005 à 14:32:09  profilanswer
 
n°1197597
freed102
Arayashiki
Posté le 12-09-2005 à 14:35:12  profilanswer
 

j'explique plus clairement....
en fait j'ai une multitude de variables de session qui sont déclarées... à un moment je vais devoir les supprimer pour en creer de nouvelles... mais j'aimerai savoir si ya un moyen de les supprimer à la volée... sans faire des centaines de lignes de unset(...); unset(...);unset(...);
 
peut etre une boucle tout simplement ? je sais pas.. ya peut etre quelquechose deja prevu pour ça ?


---------------
Freed102
n°1197602
sielfried
Posté le 12-09-2005 à 14:40:52  profilanswer
 
n°1197604
freed102
Arayashiki
Posté le 12-09-2005 à 14:44:34  profilanswer
 

je crois que j'ai trouvé une autre solution...
mais alors ma question est maintenant :
 
est ce que faire un unset() d'une variable qui n'existe pas provoque une erreur ?


---------------
Freed102
n°1197607
freed102
Arayashiki
Posté le 12-09-2005 à 14:45:41  profilanswer
 

j'ai la reponse dans la doc :
 

Citation :


En PHP 4 toutefois, unset() n'est plus une véritable fonction : c'est une structure du langage, ce qui fait qu'elle ne retourne pas de valeur. Lire la valeur retournée par unset() (dans une variable, par exemple), retourne une erreur d'analyse.  
 


---------------
Freed102
n°1197609
sielfried
Posté le 12-09-2005 à 14:46:04  profilanswer
 
n°1197611
sielfried
Posté le 12-09-2005 à 14:46:46  profilanswer
 

Je vois pas le rapport entre ton quote de la doc et ta question là. :/


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1197615
freed102
Arayashiki
Posté le 12-09-2005 à 14:49:39  profilanswer
 

bah si.. c'est que avant unset() retournait true... maintenant ça retourne rien... ce que j'avais peur c'est qu'il me retourne une erreur si j'essayais de supprimer une variable qui n'etait pas declarée...  visiblement si j'essaie de supprimer une variable qui n'existe pas.. c pas grave.. du coup je vais pouvoir faire un truc du genre :
 

Code :
  1. $array_vars=array(0=>"background",1=>"entite",2=>"titre",3=>"adresse",4=>"logo1" );
  2. foreach ($array_vars as $key=>$value)
  3. {
  4. $num2="2";
  5. unset($_SESSION["pos_x_$value"]);
  6. unset($_SESSION["pos_y_$value"]);
  7. unset($_SESSION["couleur_$value"]);
  8. unset($_SESSION["fonte_$value"]);
  9. unset($_SESSION["width_$value"]);
  10. unset($_SESSION["height_$value"]);
  11. unset($_SESSION["size_$value"]);
  12. unset($_SESSION["fonte_$value"]);
  13. unset($_SESSION["align_$value"]);
  14. unset($_SESSION["valign_$value"]);
  15. unset($_SESSION["interlignage_$value"]);
  16. unset($_SESSION["CV$value"]);
  17. unset($_SESSION["CV$value$num2"]);
  18. }


---------------
Freed102
n°1197629
gatsusat
Posté le 12-09-2005 à 14:55:29  profilanswer
 

pour supprimer toutes les varaibles d'une session ca doit etre session_destroy() ou session_close, chai pu

mood
Publicité
Posté le 12-09-2005 à 14:55:29  profilanswer
 

n°1197633
freed102
Arayashiki
Posté le 12-09-2005 à 14:57:54  profilanswer
 

oui mais session_destroy ça tue la session complete.. et moi je veux pas ! je crois qu'il n'y a pas d'autre moyen que ce que j'ai fait en fait.. je vois pas comment PHP peut deviner quelles variables il faut detruires et celles qu'il ne faut pas


---------------
Freed102
n°1197637
sielfried
Posté le 12-09-2005 à 14:59:43  profilanswer
 

session_destroy détruit la session mais ne unset pas tous les $_SESSION et vire pas le cookie de session non plus.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1197639
freed102
Arayashiki
Posté le 12-09-2005 à 15:00:36  profilanswer
 

ouai donc ça me convient pas, moi je veux garder la session en cours ouverte.. Mais supprimer un grand nombre de variables pour quelles soient eventuellement remplacées


Message édité par freed102 le 12-09-2005 à 15:01:45

---------------
Freed102
n°1197642
sielfried
Posté le 12-09-2005 à 15:01:07  profilanswer
 

freed102 a écrit :

oui mais session_destroy ça tue la session complete.. et moi je veux pas ! je crois qu'il n'y a pas d'autre moyen que ce que j'ai fait en fait.. je vois pas comment PHP peut deviner quelles variables il faut detruires et celles qu'il ne faut pas


 
En même temps t'as pas l'air de lésiner sur les sessions.  [:mlc]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1197699
omega2
Posté le 12-09-2005 à 15:39:27  profilanswer
 

Et si tu faisait un foreach sur ta session dans laquelle tu fais un unset?
Ca la videra sans la tuer.

n°1197700
freed102
Arayashiki
Posté le 12-09-2005 à 15:40:10  profilanswer
 

et bien si tu lis plus haut... c ce que j'ai fait!


---------------
Freed102
n°1197703
omega2
Posté le 12-09-2005 à 15:46:20  profilanswer
 

Moi, je te proposais de boucler directement sur $_SESSION :lol:
En fait, t'avais tellement de ligne dans ta solution que j'avais même pas vu que tu faisais un foreach sur un tableau que tu venais de créer Pourquoi t'utilise pas une fonction vu que tu sais exactemetn ce que tu veux supprimer? Ca serait plus rapide que de créer un tableau et faire un foreach dessus.

n°1197704
freed102
Arayashiki
Posté le 12-09-2005 à 15:48:16  profilanswer
 

et bien en fait c le seule moyen que j'ai trouvé pour cibler ce que je veux supprimer (j'ai fais attention à garder une cohérence dans les noms quand je declarais mes variables expres pour pouvoir les manipuler sans crainte)


---------------
Freed102
n°1197852
erel69
Posté le 12-09-2005 à 19:20:48  profilanswer
 

Et pourquoi tu ne stockes pas tes variables dans une variable de session ?
 
Par exemple tu crées $_SESSION['valeurs'] = array(); et tu utilises ce tableau pour stocker tes variables, au lieu de stocker directement dans $_SESSION
 
Et après il ne reste qu'à faire $_SESSION['valeurs']  = array(); ou unset($_SESSION['valeurs']); pour détruire tes variables.
 


---------------
France Hardware | Degroup Test | Degroup News
n°1197861
freed102
Arayashiki
Posté le 12-09-2005 à 19:54:14  profilanswer
 

et bien parceque j'avais pas prevu ça au debut... donc c trop tard !

n°1197867
erel69
Posté le 12-09-2005 à 20:01:20  profilanswer
 

Il n'est jamais trop tard :)


---------------
France Hardware | Degroup Test | Degroup News
n°1197869
freed102
Arayashiki
Posté le 12-09-2005 à 20:04:59  profilanswer
 

et bien j'ai pas envie de tout recoder en fait.. c trop tard !

n°1198939
Badze
Aime les frites
Posté le 14-09-2005 à 00:16:41  profilanswer
 

J'ai eu une petite idée en tete en lisant.
Si tu vois que tu n'a que 1 ou 2 session a récupéré, tu les met dans des variables.
 
$truc = $_SESSION['truc'];
$_SESSION = array();
$_SESSION['truc'] = $truc;
 
Mais apres il faut voir ca selon ce que tu as besoin.
Voila, j'ai apporter ma contribution de la soirée :D


Message édité par Badze le 14-09-2005 à 00:17:06
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  unset() ?

 

Sujets relatifs
Question bête sur unset[php5] unset et variable static
Interprétation des conditions d'un "if" et utilsation du "unset"unset() incontrolé
session_unset() et session_destroy()Php3 et unset () chez free
[php] session_unset() + questiong 
Plus de sujets relatifs à : unset() ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)