Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z sesją - nie przekazuje sesji przy kliknięciu
Forum PHP.pl > Forum > Przedszkole
-olek-
Witam, mam problem z sesją w PHP, przeszukałem manuale i fora, ale problemu nie rozwiązałem, może ktoś z was pomoże smile.gif

Mianowicie robię stronkę, która prawie w całości jest w jednym pliku (index.php), w którym można się zalogować, wyświetla się wtedy to, co dla niezalogowanych ukryte. Kod jest długi, więc wrzucę tylko ważniejsze fragmenty:

Początek pliku:
  1. <?php
  2. if($_POST['logout']==1) $_SESSION['user'] = 0;
  3. ?>


Trochę później mamy wyświetlanie tego co dostępne tylko po zalogowaniu:
  1. <?php
  2. if(isset($_SESSION['user']) && $_SESSION['user']!=0) submenu(2, $_GET['sub']);
  3. ?>

( funkcja submenu() to moja funkcja wyświetlająca dodatkowe menu )

Natomiast po logowaniu przekazanie nazwy użytkownika do zmiennej sesyjnej wygląda tak:
  1. <?php
  2. if(haslo_ok($_POST['login'], $_POST['pass'])){
  3. $_SESSION['user'] = $_POST['login'];
  4. }
  5. ?>

Logowanie działa, natomiast po kliknięciu w jakiś link i przeładowaniu strony zmienna $_SESSION['user'] przestaje istnieć, większość linków mam zbudowane na sposób:
index.php?id=x&sub=y
Próbowałem więc dodać id sesji do adresu w ten sposób:
  1. <?php
  2. $sid = session_id();
  3. echo "<a href=\"index.php?id=1&sub=1&PHPSESSID=$sid\" class=\"normal\">jakis link </a>";
  4. ?>

ale w niczym to nie pomogło.

Męczę się z tym cały dzień, a sprawa jest dosyć pilna, jeśli ktoś ma pomysł co robię nie tak to z góry dzięki za pomoc!
krzysiekk
czesc a jakie masz kodowanie pliku podczs zapisu questionmark.gif
ja miałem kiedys taki prblem ktory zniknął kiedy zmieniłem kodowanie na UTF-8 (podczas zapisu) z ANSI
webdice
W pozostałych plikach masz session_start?
-olek-
Cytat(krzysiekk @ 9.10.2007, 21:03:53 ) *
czesc a jakie masz kodowanie pliku podczs zapisu questionmark.gif
ja miałem kiedys taki prblem ktory zniknął kiedy zmieniłem kodowanie na UTF-8 (podczas zapisu) z ANSI


Hmm, nie rozumiem pytania. Podczas zapisu czego? Jeśli pytasz o stronę kodową, to standardowo iso-8859-2, ale podejrzewam, że nie o to to pytanie.

Co do pytania o session_start() w pozostałych plikach, to tak jak to wcześniej pisałem nie ma na razie innych plików poza index.php, ale przy przeładowaniu tego pliku sesja gdzieś się "gubi".
Berkovits
Zmienna $_SESSION['user'] przestaje istnieć, czy jest wyzerowywana?
Merko
Cytat
czesc a jakie masz kodowanie pliku podczs zapisu questionmark.gif
ja miałem kiedys taki prblem ktory zniknął kiedy zmieniłem kodowanie na UTF-8 (podczas zapisu) z ANSI


To jest kodowanie do zapisu na bazy jak cos ale ty raczej nie masz poloaczenia z bazą MySQL jak sadze co??
-olek-
$_SESSION['user'] przestaje istnieć, isset($_SESSION['user']) zwraca false
-olek-
Cytat(Merko @ 10.10.2007, 16:54:49 ) *
To jest kodowanie do zapisu na bazy jak cos ale ty raczej nie masz poloaczenia z bazą MySQL jak sadze co??


Mam połączenie z MySQL, natomiast nie ustawiałem żadnego kodowania, czyli musiało pozostać domyślne. Ale jakie znaczenie ma połączenie z bazą MySQL co do działania sesji? Kiedyś już kilka razy stosowałem sesje w podobny spoób i działało. Teraz zupełnie nie wiem co jest nie tak, w sumie nie ma za bardzo różnic w porównaniu do poprzednich moich skryptów, tyle że zmieniłem serwer.
Dodam, że z bazą łącze się w ten sposób:
  1. <?php
  2. try{
  3. $polaczenie = mysql_connect($serwer, $uzytkownik, $haslo_baza);
  4. }catch (SQLException $e){
  5. echo $e;
  6. }catch (Exception $e){
  7. echo $e;
  8. };
  9. ?>

czy to ma jakiś wpływ na sesję i należało by coś tu zmienić?
krzysiekk
witam jesli chodzi o zapisywanie to mam na mysli cos takiego
(ja uzywam edit++ do pisania skryptow i wogole htmla)
otwieram nowy plik i pisze skrypt i gdy daje zapisz lub zapisz jako to nadaje mu nazwe np index.php i mam mozliwosc zakodowania pliku podczas zapisu UTF-8 lub ANSI i o to mi chodzilo
pozdrawiam
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.