Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sesje-logowanie
Forum PHP.pl > Forum > Przedszkole
marmomm
problem z serii banalnych ...

mam stronke z logowaniem tzn mam logowanie i po autoryzacji zakladam sesje w ktorej trzymam nick, wszytsko jest ok... ale pozalogowaniu nadal sa dostepne linki do stron publicznych i jezeli ktos kto sie zalogowal kliknie na nie wychodzi ze stron z autoryzacja (bez killniecie sesji) i znowy pokazuje sie mozliwosc zalogowania, a chce zeby nawet po wyjsciu 'na zawnatrz' wyswietlał sie status "zalogowany".

z tego co wyczytalem musialbym nawet w czesci publicznej robic session_start() i sprawdzac czy nick != '' . Jezeli tak to wyswietlac kawalek "Zalogowany" a jezeli nie to mozliwosc zalogowania.

tyle ze to chyba nie jest najlepsze rozwiazanie bo nawet jesli strone bedzie ogladal gosc, to za kazdym zazem session_start() bedzie tworzyl pusta sesje.

a to chyba nie jest optymalne rozwiazanie

co proponujecie?
kicaj
Zeby sesja dzialala wszedzie nalezy umiescic tam session_start" title="Zobacz w manualu PHP" target="_manual()
marmomm
ok, ale jak sprawdzic cos takiego:
- sprawdz czy jest uruchomiona sesja
-jezeli jest pokaz ze zalogowany jezeli nie pokaz form do logowania

probowalem session_name() zeby sprawdzc czy jest juz sesja ale to powoduje koniecznosc wywolania najpierw session_start(), czyli jezeli ktos wejdzie 1 raz z zewnatrz to tez bedize mu zakladalo 'pusta sesje'

a to chyba nie jest dobrze..
scanner
I tak to ma działać.
Zakładasz pustą sesję i później sprawdzasz, czy są w niej odpowiednie wartości.
Kłania się manual.

Przenosżę: php => Poczatkujacy.
marmomm
chcsz powiedziec ze tak ma byc? za jak wchodzi 100 osob na strone z czego tylko 5 sie zaloguje to tworzenie 100 sesji jest jedynym rozwiazaniem?!?

odrzucilem takie rozwiazanie jako nieoptymalne i oczekiwalem jakiegos olsniewajacego i prostego rozwiazania tongue.gif
kicaj
Po zalogowaniu rejestrujesz w sesji np. id usera.
Potem na innych stronach sprawdzasz czy sesja jest zarejestrowana i ma wartosc id - jesli nie wyswietl formularz do logowania...
marmomm
Cytat(kicaj_ @ 2004-06-25 09:38:39)
Potem na innych stronach sprawdzasz czy sesja jest zarejestrowana i ma wartosc id - jesli nie wyswietl formularz do logowania...

mozesz mi to zakodowac, bo moja proby zakonczyly sie fiaskiem
scanner
Pokaż te próby, to my Ci pokażemy, co reobisz źle.
marmomm
ok, testuje tak:

plik index.php :


<?
if(!isset($session_id)) $sesja_jest = 'jest';
?>
<a href="dwa.php">zakladam sesje</a><br>
<a href="trzy.php">podstrona</a>
<?
echo 'sesjajest=';echo $sesja_jest;
?>

plik dwa.php:

<?
session_start();

echo '
<a href="index.php">index</a><br>
<a href="trzy.php">podstrona</a>
';
?>


wiec jak wchodze na index zmienna $sesja_jest powinna byc pusta, a jak wejde na dwa.php i wroce na index.php to wedlug mnie powinna miec wartosc 'jest'

a nie ma sad.gif

whaz up??
..:: pingu ::..
Zapomniałes czegoś :
  1. <?
  2. $session_id = session_id();
  3. if(!isset($session_id)) $sesja_jest = 'jest';
  4. ?>
marmomm
no ok, racja tez juz do tego doszedlem
ale dalej NIC tzn jak wyswietle w dwa.php $session_id to mi pokazuje ID, ale po powrocie do indexu sesion_id() nie zwraca ID !#!

sam juz glupieje...
scanner
A co to za bzdury?
POczytać manual rozdział o sesjach. Bo mieszasz!
  1. <?php
  2. // index.php
  3. $_SESSION['zalogowany'] = true;
  4. ?>
  5. <a href=\"dwa.php\">dwa</a>
  1. <?php
  2. // dwa.php
  3. if( $_SESSION['zalogowany'] )
  4. {
  5. echo 'zalogowany';
  6. }
  7. else
  8. {
  9. echo 'niezalogowany';
  10. }
  11. ?>
marmomm
sorki scanner ale twoje rozwiazanie nie rozwiazuje problemu w moim podejsciu... bez urazy..

Ty w index. zakladsz sesje, a ja tego nie chce robic. Powtarzam po raz 3ci: Nie chce aby przy 1000 wejsc na strone zakladane bylo 1000 sesji podczas gdy tylko 10 osobo faktycznie by sie logowalo.

Szukam sposobu na sprwdzenie po wejsciu w index czy ludek ma zalozona biezaca sesje, ktora powstala podczas poprawnego logowania.
Jezeli NIE - include ("niezalogowany")
Jezeli TAK include ("zalogowany")

moze tak to sie robi, jak ty proponujesz... nie wiem. jezeli tak dajcie odpowiedz ze tak jest OK i innego sposobu nie ma.
scanner
i co z tego,ze zaloży się 1000 czy nawet 99999999 sesji?
Przeszkadza Ci to w czymś?
W sesji możesz trzymac różne dane, a nie tylko to, czy się ktoś zalogował.
Wsadż tam język strony, jaki wybrał user, wsadź tam wybrany theme, wsadź czas wejscia na strone...

Utrudniasz sobie życie kombinując jak łysy koń pod górkę.
marmomm
Cytat(scanner @ 2004-06-25 10:49:39)
i co z tego,ze zaloży się 1000 czy nawet 99999999 sesji?
Przeszkadza Ci to w czymś?
W sesji możesz trzymac różne dane, a nie tylko to, czy się ktoś zalogował.
Wsadż tam język strony, jaki wybrał user, wsadź tam wybrany theme, wsadź czas wejscia na strone...

Utrudniasz sobie życie kombinując jak łysy koń pod górkę.

i co z tego,ze zaloży się 1000 czy nawet 99999999 sesji?
Przeszkadza Ci to w czymś?


NIE LUBIE SMIECIC BEZ SENSU biggrin.gif
SADZILEM ZE MOZNA TO ZROBIC TAK JAK MYSLE....

W sesji możesz trzymac różne dane, a nie tylko to, czy się ktoś zalogował.
Wsadż tam język strony, jaki wybrał user, wsadź tam wybrany theme, wsadź czas wejscia na strone...


NO TO TO WIEM ...

Utrudniasz sobie życie kombinując jak łysy koń pod górkę.

CZYLI OSWIADCZACIE MI "ZE TAK SIE ROBI I JEST OK"?
scanner
Po prierwsze, naucz się cytować.
Po drugie: sesje są automagicznie usuwane z serwera po ustalonym czasie.
Po trzecie: tak się robi i tak jest ok.
marmomm
dzieki , mily gosc z ciebie...
Sali_
Możesz na cistkach się oprzeć, ale myśle że to trudniejsze, a zresztą podobne blink.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.