Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] sesje, Zagubione sesjie przy wywolanach ajaxowych
fernet
post 25.04.2009, 17:37:11
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 22.03.2007

Ostrzeżenie: (0%)
-----


Napisalem prosty mechanizm zminy id sesji przy kazdym wywolaniu zalogowanego uzytkownika na stronie.

Dzalala to nastepujaco

Skryp sprawdza czy zmienna sesji ma nalozona wartosc jesli tak to dalej sprawdza czy ciacho uzytkownika ma wartosc bierzacego id sesji jesli tak to nastepuje zmiana id sesji i wysylane jest ciasteczko z nowa wartoscia id sesji.


Wylogowanie nastepuje jesli bierzace id sesji nie je pasuje do wartosci z ciasteczka lub jesli zmienna w sesji nie ma wartosci.

I wszystko smiga ale w stronach "adresowych". Kiedy pisze strony "adresowe" mam na mysli te strony w do ktorych odwoluje sie z adresu przegladarki. Jednak niektore elementow strony sa aktualizowane ajaxowo. Tam tez z chwila kiedy zmianiam id sesji pojawia sie problem.


Chodzi o to ze moge zminic id sesji w skryptach ktore sa wykonywane ze stron adresowych. A skrpyty wykonywalne przez ajaxa traca id sesji czy cos tam w rezultacie wywala mi logout

Zalezy mi by kazda aktywnosc uzytkownika zminiala id sesji i aktualizowala ciasteczko a puki co moge tego dokonac tylko z poziomu zapytan "adresowych".

Za pomoc i zainteresowanie z gory dziekuje i pozdrawiam

Ten post edytował fernet 25.04.2009, 17:43:47


--------------------
Czy sprzedal sie juz czy dopiero ma? Oto pytanie, ktore stawiam wam. A czemu gdy byl, to nic tylko spal? Ze mna co lubie go gadac nic nie chcial. A czemu to gra, a tamtego nie. Chyba nas wszystkich nic nie szanuje. Jaki byl kiedy pil? Jaki byl kiedy gral? Czy to ten czlowiek sam czy moze rozni dwaj?
Go to the top of the page
+Quote Post
okitoki
post 26.04.2009, 11:46:16
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


możesz dać kod?


--------------------
Go to the top of the page
+Quote Post
fernet
post 28.04.2009, 15:29:33
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 22.03.2007

Ostrzeżenie: (0%)
-----


blad jaki wyskakuje to taki ze header juz jest i zebym sobie darowal co jest nawet logiczne z tym ze mnie to nie zadawala

wyglada to mniej wiecej tak

index.php (strona adresowa)

  1. <?php
  2. require("include/set_offline.php");
  3. ?>
  4.  
  5. <html>
  6. <a href="java script:bambam();">Odpal ajaxa</a>
  7. <div id="ajaxowy">
  8. <?php include("include/strona_servera.php")?>
  9. </div>
  10. <html>


plik strona_servera.php nie jest strona adresowa i mam tam znowu require("set_offline.php"); no i zwrot tagow html ktore albo z include strony adresowej albo za pomoca ajaxa i responseText przypisuje do <div id="ajaxowy">. Operacja requre include itd w pliku strona_servera.php jest problematyczna jak wpisze tam samo session_start() bez fikolkow ze zmiana id sesj to smiga.


najistotniejsza cześć kodu z set_offline.php

  1. <?php
  2. if(isset($_SESSION['user'])) {
  3.    if(isset($_COOKIE['ciacho'])) {
  4.        if($_COOKIE['ciacho'] == session_id()) {
  5.            //cacy            
  6.            session_regenerate_id();
  7.            setcookie("ciacho",session_id(),time()+60*30,"/" );
  8.  
  9.        } else {
  10.            //zle
  11.        }
  12.    } else {
  13.        //zle
  14.    }    
  15. } else {
  16.    //zle
  17. }
  18. ?>


Ten post edytował fernet 28.04.2009, 16:01:23


--------------------
Czy sprzedal sie juz czy dopiero ma? Oto pytanie, ktore stawiam wam. A czemu gdy byl, to nic tylko spal? Ze mna co lubie go gadac nic nie chcial. A czemu to gra, a tamtego nie. Chyba nas wszystkich nic nie szanuje. Jaki byl kiedy pil? Jaki byl kiedy gral? Czy to ten czlowiek sam czy moze rozni dwaj?
Go to the top of the page
+Quote Post
okitoki
post 28.04.2009, 17:30:47
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


tu tworzysz sesje, modyfikujesz nagłówek exclamation.gif
Kod
require("include/set_offline.php");


potem php wysyła do przeglądarki

Kod
<html>
<a href="javascript:bambam();">Odpal ajaxa</a>
<div id="ajaxowy">


potem mówisz że w pliku <?php include("include/strona_servera.php")?> masz wpis

Kod
require("include/set_offline.php"); :)


niestety tu masz błąd, tu nie możesz modyfikować nagłówka jak już coś wysłałeś a wysłałeś

Kod
<html>
<a href="javascript:bambam();">Odpal ajaxa</a>
<div id="ajaxowy">



takie komendy jak header, session_start, setcookies powinno się robić na początku, do momentu aż nic nie wyślesz do przeglądarki

pozdrawiam Paweł


--------------------
Go to the top of the page
+Quote Post
fernet
post 29.04.2009, 00:45:28
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 22.03.2007

Ostrzeżenie: (0%)
-----


No ja doskonale to rozumiem ale dzięki za potwierdzenie mojego przeswiadczenia o specyficekacji działania header. Szukam rozwiązaia które zapewni mi zmianę id sesji w adresowych plikach jak i w typach ajaxowych plików. Właściwie to chyba nawet je znam i szczerze to liczyłem na to że jest jeszcze coś pomiędzy ingerencji w mechanizm sesji a defaultowym jej wywołaniem. Mysle ze jedyne rozwiazanie tego na zasadzie pomiedzy wywola niesutanne Loading wyswietlane w przegladarce, nie zadawala mnie ono ale chalbym je poznac.

Ten post edytował fernet 29.04.2009, 01:25:19


--------------------
Czy sprzedal sie juz czy dopiero ma? Oto pytanie, ktore stawiam wam. A czemu gdy byl, to nic tylko spal? Ze mna co lubie go gadac nic nie chcial. A czemu to gra, a tamtego nie. Chyba nas wszystkich nic nie szanuje. Jaki byl kiedy pil? Jaki byl kiedy gral? Czy to ten czlowiek sam czy moze rozni dwaj?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 11:00