Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rzecz o sesjach
Forum PHP.pl > Forum > Przedszkole
tomilipin
Witam,
przeczytałem zagadnienia dotyczące dodawania zmiennych do sesji w manualu php.net i nadal nie mogę ich dodać w moim skrypcie! Robię wszystko zgodnie z przykładami w manualu ale zmienne po prostu się nie dodają. Parser nie wykrywa błędów. Próbowałem już wielu możliwości: przez $_SESION ['bla'], przez session_register("bla") ale ciągle nie mam pewności co to oznacza...
Najbardziej przychylam się do session_register("bla") i rozumiem że to zapisze w sesji zmienną bla, której wartość trzeba wcześniej zdefiniować? No a jak ją potem odczytać w innym pliku? Próbowałem session_is_registered("bla") ale nic się nie wyświetlało... nie wiem za bardzo jak tego używać sadsmiley02.gif
Dlatego proszę Was o podanie przykładowego kodu dla dwóch plików w php gdzie w jednym zapisujemy zmienną do sesji a w drugiej to oczytujemy i wyświetlany przez np. echo
sf
A tworzy Ci sie sesja ? Sprawdz czy sie tworzy...

  1. <?php
  2. // plik 1.php
  3. $_SESSION['bla']=&#092;"lalala\";
  4. echo '<a href=\"2.php\">idz</a>';
  5.  
  6. // plik 2.php
  7. echo $_SESSION['bla'];
  8. ?>
tomilipin
Tak, sesja mi się tworzy.
Skorzystałem z Twojego kodu i pod linkiem ukazało mi się
  1. <a href="2.php?PHPSESSID=fd3069ded1aa407379443e96d918c226">idz</a>
chociaż tego w kodzie nie ma. Dziwne, ale zarazem fajne- praktyczne!
Ja sam sprawdzałem sesje tak:
  1. <?
  2. //plik 1
  3. $sesid=session_id();
  4. echo $sesid; //aby mieć pewność
  5. echo &#092;"<a href=\"2.php?sesid=$sesid\\">2.php</a>\"; //link
  6.  
  7. //plik 2
  8. echo $sesid; //po prostu wyświetlanie ID, 100% pewności;-)
  9. ?>


No i teraz pytanie- jak zapisywać zmienne do sesji? Czy ten kod który podałeś już zapisał zmienną "bla" i kolejne zmienne miałbym zapisywać analogicznie?

--EDIT--
nie wiem czemu w kodzie (7) jest "&#092"... w poście już trzeci raz wpisuję backslash i nic...
Sm0key
  1. <a href="2.php?PHPSESSID=fd3069ded1aa407379443e96d918c226">idz</a>


tak sie tworzy w php gdy przegladarka lub w konfigach jest wylaczone uzycie cookies, php automatycznie dodaje id sesji do linkow

2 dane sie zapisuje

  1. <?php
  2.  
  3. $_SESSION['nazwa zmiennej sesyjnej']= &#092;"jakas wartosc tej zmiennej\";
  4.  
  5. ?>


wiecej poczytaj w maualu
session" title="Zobacz w manualu PHP" target="_manual
tomilipin
Cytat(Sm0key @ 2004-07-26 23:50:22)

Dzięki! Tam nie byłem... Sporo mi to wyjaśniło, dziękuję też za info odnośnie zapisywania zmiennych sesyjnych. Zrobię proste logowanie na stronce (dział zastrzeżony) biggrin.gif

--EDIT--
W związku z tym że nie można odpowiadać po sobie- napiszę w tym poście:
Problem pojawił się nowy... Zmienne chcę wykorzystać do prostego logowania, chodzi o to że stronę mam w dwóch plikach (w jednym zmienne z treścią działów, w drugiej wszystko wyświetlam), używam takiego kodu w pliku nr 1:
  1. <?
  2. function zalogowany() {
  3. $_SESSION['logged']=&#092;"1\";
  4. print '<p class=\"zwykly\">ZALOGOWANY</p>';
  5. }
  6.  
  7. function restricted(){
  8. $dwa=$_SESSION['logged'];
  9. if ($dwa==&#092;"1\") { print '<p class=\"zwykly\">ZALOGOWANY</p>'; }
  10. elseif ($_POST['haslo']==&#092;"aaa\") { zalogowany(); }
  11. else { print 'form method=\"POST\" action=\"glowna.php?n=3\"><input type=\"password\" name=\"haslo\" size=\"11\"> <input type=\"submit\" value=\"Jazda!\" name=\"logowanie\"></form>';
  12. }
  13. ?>

W formularzu jest action="glowna.php?n=3" a jeśli n=3 to odpala funkcję restricted(). Dodałem przed rozpoczęciem sesji @ aby nie wyświetlał mi błędów (gdyż ID i tak się tworzy...). Pomimo wszystko efektem jest putska- po wpisaniu poprawnego hasła wyświetla się ZALOGOWANY, jednak jeśli potem wejdę na inną podstronę, a następnie znowu będę chciał zobaczyć tą oją stronę zastrzeżoną (o niej mowa) to wyświetla mi się form do wpisania hasła... Nie mam pojęcia jak to rozwiązać! Stronę muszę mieć w dwóch plikach więc tworzenie osobnych plików dla wszystkiego odpada...

Co radzicie?
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.