Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje + GET
Forum PHP.pl > Forum > PHP
hub3rt
Mam problem z połączeniem sesji i operowania na stronach zmiennymi GET.
Np.

strona1.php
  1. <?php
  2.  
  3.  
  4. <a href="strona2.php?ble=x">
  5. ?>


strona2.php
  1. <?php
  2.  
  3. if ($_GET['ble'] == 'x')
  4. {
  5.  // cos tam
  6. }
  7. ?>


To na tej stronie nie działa już sesja. Wszystko się po prostu kasuje...
Jeżeli przechodzę między stronami bez GET'a to jest wszystko OK.

Coś robię źle, czy nie uwzględniam jakiegoś istotnego elementu? Już robiłem różne rzeczy, od nowa itp. i nic się nie zmienia. Zawsze sesja "umiera" po użyciu GET'a.
rollon
hej sprobój porównywać 3 znakami "równa się", dwoma porównuje się liczby winksmiley.jpg

  1. <?php
  2.  
  3. if ($_GET['ble'] === 'x')
  4. {
  5.  // cos tam
  6. }
  7. ?>
hub3rt
no tak, ale dajmy na to nawet, ze to jest liczba...i wtedy bez tych ' '

tzn.
  1. <?php
  2. if ($_GET['ble'] == 4627)
  3. {
  4.  // cos tam
  5. }
  6. ?>
rollon
a nie rozumiem jeszcze po co Ci ta sesja skoro tworzysz ja ale pozniej nie odbierasz z niej zadnej zmiennej?
do czego to ma sluzyc?


  1. <?php
  2.  
  3. $_SESSION[id] = 'lol';
  4.  
  5. <a href="strona2.php?ble=x">
  6. ?>


a w pliku strona2.php:

  1. <?php
  2. if (!($_SESSION[id] === 'lol'))
  3. {
  4. if ($_GET['ble'] === 'x')
  5. {
  6.  // cos tam
  7. }
  8. }
  9. ?>
hub3rt
Cytat
a nie rozumiem jeszcze po co Ci ta sesja skoro tworzysz ja ale pozniej nie odbierasz z niej zadnej zmiennej?
do czego to ma sluzyc?


To jest tylko przykład. Jak napisałem wcześniej próbowałem już na wielu skryptach połączenia sesji z GET'ami. Np. sesje wykorzystuje do uwierzytelnienia i udostępniania stron pod pewnymi warunkami. Ale czasami wystarczy mi GET. I kiedy go użyje to sesje przestają działać. Nawet w takiej sytuacji jak sam przedstawiłeś. W dokładnie identycznej.
colinQ
Nie działa bo tez sesji w żaden sposób nie przekazujesz ona zostaje w pliku strona1.php a ty przechodzisz do strona2.php

Jeżeli na stronia2.php byś to zincludował to powinno działać...

Ale nie jestem pewien...
hub3rt
Jeszcze raz tłumaczę, że jeżeli nie używam GET'a i przeskakuje między stronami to sesje chodzą aż miło. A gdy tylko napotyka stronę z GET to kaput. Dosłownie reset całej sesji.
colinQ
to spróbuj wczytać sesje z innej strony tak jak mowilem

masz na przyklad sesje.php i wczytujesz je na obu stronach
revyag
A jak przekazujesz id sesji ?
thornag
Cytat
hej sprobój porównywać 3 znakami "równa się", dwoma porównuje się liczby


pierwsze slysze ze stringi porownuje sie operatorem === a nie ==, jamyslalem ze === to raczej dla logicznych true/false ale co ja tam wiem.

Co do problemu to tez sadze ze dobrze byloby sprawdzic czy php jest uistawiony na przekazywanie w ciastku czy przez geta.

Ogolnie zrob cos takiego

start.php
  1. <?php
  2.  
  3. $_SESSION['test'] = 'jest';
  4.  
  5. echo '<a href="./check.php"/>check<a/>';
  6. ?>


i pozniej check.php
  1. <?php
  2.  
  3. echo '<pre>';
  4. print_r($_SESSION);
  5. ?>


I zobacz co sie dzieje.
krowal
Cytat
pierwsze slysze ze stringi porownuje sie operatorem === a nie ==, jamyslalem ze === to raczej dla logicznych true/false ale co ja tam wiem.


No właśnie nie wiesz smile.gif operator == porównuje tylko wartośći, a operator === porównuje także typy zmiennych, w skrócie:
4 == '4' -> true
4 === '4' -> false
nic nie stoi na przeszkodzie żeby porównywać nim także stringi, oczywiście w zależności od potrzeb.

//abstrahując od tematu winksmiley.jpg
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.