Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sesje i KOCHANY IE
Forum PHP.pl > Forum > Przedszkole
speedlog
Witam!
Ostatnio napotkałem się na badzo dziwną sprawę.
Więc mam stronę główną na której następuje logowanie, wczytywanie podstron itd. Wszystkie podstrony dostępne dopiero po zalogowaniu ładują się zarówno w FF jak IE. Teraz mam linka ze strony głównej do nowego okna "_blank" i nowej strony, która również jest dostępna dopiero po zalogowaniu. I tu jest problem... W FF działa w IE występuje "Brak autoryzacji..."!!

przedstawię kod strony która otwiera się w nowym oknie:
Kod
<?php
  session_start();
  if($_SESSION['login']!="1") exit("Brak autoryzacji...");
  ?>
  ...


Hmm... Tak się przez chwilę zastanowiłem i doszedłem do wniosku, że dopiszę jeszcze jedno.

Strona główna się nazywa:
index.php

a jej podstrony
index.php?page=a
index.php?page=b
index.php?page=c

Natomiast strona otwierana w nowym oknie:
dodaj.php

Nie wiem, czy mój błąd ma coś wspólnego z nazewnictwem, ale dopisałem tą informację. Chociaż wątpię, żeby to było tym spowodowane bo w FF działa. (do tej pory nie wiedziałem, czemu ludzie mają aż taki wstręt do IE, teraz wiem dry.gif )
sf
Czy przypadkiem nowe okno (_blank) w IE nie powoduje nowej sesji? Jeśli tak to już wiesz co jest nie tak winksmiley.jpg
speedlog
Tak właśnie się zastanawiam... Hmmm.. Chyba faktycznie tak jest...
session_id dla index.php ofmmb9kb6aia1mgo0qs2rbmso3
session_id dla dodaj.php i6qo73dfesi7gbc0qcm5pbvlo1

Czy da się jakoś inaczej rozwiązać ten problem niż logowanie na nowej stronie?? Bo jak tak za każdym razem trzeba będzie się logować to można zwątpić w sens życia ;p
drPayton
Możesz użyć własnego session_handlera w oparciu o pliki czy też bazę danych a nie cookies przeglądarki.
speedlog
Mam prośbę, mógłbyś to zaprezentować bardzo prosto w punktach (prosty schemat)questionmark.gif Bo nigdy nie pisałem własnej klasy do obsługi sesji...
drPayton
Ja też tongue.gif

Możesz to rozwiązać tak
1. Przy zapisie danych do sesji tworzone cookie o jakimś identyfikatorze [niekoniecznie SID] (albo zwykły plik na serwerze/wpis w bazie)
2. Ten identyfikator musiałbyś przekazywać w sposób jawny w adresie i pobierać GET'em i odczytać dane z odpowiedniego ciasteczka...

Ten proces mogłoby ułatwić korzystanie z session_handlera, ale jak już napisałem, nie miałem okazji z tego korzystać więc poszukaj sam winksmiley.jpg
Nie wiem, czy to dobry/bezpieczny sposób, ale na pewno działający winksmiley.jpg
speedlog
Dzięki smile.gif Teraz jak już wiem co robić wykombinuję coś aby było dobrze i w miarę bezpiecznie smile.gif
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.