Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrejestrowanie i zarejestrowanie TYLKO jednej zmiennej $_SESSION ?
Forum PHP.pl > Forum > Przedszkole
InosU31
Witam

Czy istnieje taka mozliwosc zeby wyrejestrowac a nastepnie zarejestrowac tylko jedna zmienna $_Sesion['nazwa'] nie niszczac przy tym całej sesji ?

Gdy probuje :

  1.  
  2. if (!isset($_SESSION['nazwa']))
  3. {
  4. $_SESSION['nazwa'] = 1;
  5. }
  6. else unset($_SESSION['nazwa']);
  7.  
  8.  


to gdy wlanczam przegladarke tworzy mi ta zmienna sesyjna i jak odswierze strone wyrejestrowuje ja. Niestety gdy znow odswierze strone to zamiast mi znow stworzyc ta zmienna sesyjna zachowuje sie tak jakby skrypt nie mogl ponownie stworzyc tej zmiennej. Czy jest jakies polecenie do stworzenia od nowa tej zmiennej? badz inne polecenie na usowanie tej zmiennej tak zebym przy nastepnym przeladowaniu skryptu znow mi stworzylo ta zmienna??

Pozdrawiam
melkor1984
musisz dać w pierwszej linijce:



teraz masz tak zrobione, że za każdym razem sesja nie istnieje, czyli spełniony jest warunek IF i przy każdym odświeżeniu ustawia zmienną superglobalną na wartość 1.

P.S. Postaraj się używać polskich znaków i pisać zgodnie z zasadami ortografii smile.gif
InosU31
Nie nie session_start() mam ustawione na początku skryptu także sesja jest włączona i działa bez zarzutu ale chodzi o to że jak wyrejestruje tylko ta jedna zmienna - bo mam ich kilka - to sesja nadal działa ale już nie mogę ponownie zarejestrować tej zmiennej.

potrzebuję tego ponieważ mam coś takiego:

  1. if (!isset($_SESSION['guestNr']))
  2. {
  3.  
  4. $_SESSION['guestNr'] = $result[0]['id_goscie'];
  5.  
  6. $result_tmp = $dbase->get_query("
  7. SELECT * FROM goscie_tymczas
  8. WHERE id_goscia = '".$_SESSION['guestNr']."'
  9. ");
  10.  
  11. if ($result_tmp)
  12. {
  13.  
  14. foreach ($result_tmp as $record_tmp)
  15. {
  16. if($record_tmp['ses_id'] != $_SESSION['ses_id'])
  17. {
  18. $dbase->query("
  19. UPDATE goscie_tymczas
  20. SET ses_id = ".$_SESSION['ses_id']."
  21. WHERE id_goscia = ".$record_tmp['id_goscia']."
  22. ");
  23. }
  24. }
  25. }
  26. else
  27. {
  28.  
  29. $dbase->query("
  30. INSERT INTO goscie_tymczas
  31. (id_goscia, ses_id)
  32. VALUES (
  33. '".$_SESSION['guestNr']."',
  34. '".$_SESSION['ses_id']."'
  35. )
  36. ");
  37.  
  38. }
  39.  
  40. if (isset($_SESSION['guestNr']))
  41. {
  42.  
  43. $result_tmp = $dbase->get_query("
  44. SELECT * FROM goscie_tymczas
  45. WHERE date_added < NOW() - INTERVAL 5 MINUTE
  46. ");
  47.  
  48. if ($result_tmp)
  49. {
  50.  
  51. foreach ($result_tmp as $record_tmp)
  52. {
  53.  
  54. $dbase->query("
  55. DELETE FROM goscie_tymczas
  56. WHERE date_added = '".$record_tmp['date_added']."'
  57. ");
  58.  
  59. if ($_SESSION['guestNr'] == $record_tmp['id_goscia'])
  60. {
  61.  
  62. unset($_SESSION['guestNr']); //wyrejestrowuje zmienna sesyjna
  63. }
  64.  
  65.  
  66.  
  67.  
  68. }
  69. }
  70. }
  71.  


mniej więcej wygląda to tak:

jeśli zmienna sesyjna $_SESSION['guestNr'] nie istnieje to mi ją tworzy a następnie dodaje wpis do bazy. Gdy istnieje to - jeśli wpis jest starszy od obecnego czasu o 5 min - ma mi wykasować z bazy wartość przypisana zmiennej $_SESSION['guestNr'] - czyli jakiegoś gościa - a następnie wyrejestrować tą zmienna. Gdy gość odwiedzający stronę odświeży przeglądarkę po 5 minutach to znów skrypt powinien go dodać do bazy. Niestety jak wyrejestruję tą zmienną to po raz drugi nie mogę jej "zarejestrować". A nie chce niszczyć całej sesji a jedynie tą jedna zmienna.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.