![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Pisze właśnie stronkę która umożliwia logowanie się na stronie różnych userów. Wylogowałem sie i wszystko było ok do momentu gdy przez pomyłkę kliknąłem na przycisk wstecz swojej przeglądarki. Wyświetlił mi się komunikat "Strona wygasła" no to wcisnąłem odświerz i ujrzałem iż wylogowany przed chwilą user znów był zalogowany. Szukałem i znalazłem coś na zasadzie
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); Według opisu te nagłówki należy umieścić w kodzie na każdej dostępnej stronie po zalogowaniu. Jednak gdy to umieściłem w kodzie sytuacja się powtórzyła. Proszę o pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pisze właśnie stronkę która umożliwia logowanie się na stronie różnych userów. Wylogowałem sie i wszystko było ok do momentu gdy przez pomyłkę kliknąłem na przycisk wstecz swojej przeglądarki. Wyświetlił mi się komunikat "Strona wygasła" no to wcisnąłem odświerz i ujrzałem iż wylogowany przed chwilą user znów był zalogowany. Szukałem i znalazłem coś na zasadzie
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); Według opisu te nagłówki należy umieścić w kodzie na każdej dostępnej stronie po zalogowaniu. Jednak gdy to umieściłem w kodzie sytuacja się powtórzyła. Proszę o pomoc. A możesz później coś zrobić w tej sesji? Sprawdź czy to nie jest jakoś skeszowana strona (widziałem juz proxy, które olewały nagłówki sterujące keszowaniem). W jaki sposób w ogóle utrzymujesz sesje? Na cookie? Jeśli tak to sprawdź czy na pewno usuwasz je od klienta przy wylogowywaniu, czy usuwasz je z bazy oraz czy kod sprawdzający jest ok. Jeśli po odświeżeniu strony rzeczywiście dalej jesteś zalogowany to nie jest to wina nagłówków, tylko kodu. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Wiesz co, po odświerzeniu strony jestem wciąż zalogowany. Swoją stronę mam na własnym serwerze postawionym na łączy kablówki. Jeśli chodzi o nagłówki to na pewno działa mi nagłówek
header("location: index.php"); chciałem zrobić formularz logujący w jednej z ramek strony. Przy pozytywnym zalogowaniu zamiast formularz miałasię pojawić informacja kto jest aktyalnie zalogowany. Nie robiłem logowania jako nowo otwarte okno tylko zagniexdzić całą operację w tej jednej z tabel. Znaczy że pracuję na jednym skrypcie index.php a logowanie jest jako include. Może coś Ci ta informacja pomoże. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wiesz co, po odświerzeniu strony jestem wciąż zalogowany.
Pokaż kawałki kodu, które logują i wylogowywują użytkowników. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Tutaj następuje wybór odpowiednich działań albo formularz albo info o zalogowanym uzytkowniku
switch ($pol) { case(1): Print"<FORM method=post action="$PHP_SELF?pol=2" NAME=wiciu>". "<INPUT TYPE=text NAME=login size=13><BR>". "<INPUT TYPE=text NAME=haslo size=13><BR>". "<INPUT TYPE=submit VALUE=ENTER size=5></FORM>"; break; case(2): $serwer=mysql_connect("localhost", "xx", "xx") or die("Nie można nawiązać połączenia z serwerem".mysql_error()); $baza=mysql_select_db("xx") or die("Błąd podczas połączenia z bazą danych".mysql_error()); $zapytanie="Select * from users where login="."'".$login."'"." And haslo="."'".$haslo."'"; $polecenie=mysql_query($zapytanie) or die ("Błąd przy wykonywaniu zapytania".mysql_error()); $wynik=mysql_num_rows($polecenie); session_register("napis"); $napis="Kartofel"; IF ($wynik<>0) { session_register("zlogin","zhaslo","zalogowany"); $zalogowany=$login; $zlogin=$login; $zhaslo=$haslo; WHILE($row=mysql_fetch_array($polecenie)) { SWITCH($row[4]) { CASE("admin"): Print "To jest administrator <br><a href=logoff.php>Wylogój</a>"; BREAK; CASE("user"): Print "To jest urzytkownik"; BREAK; } } } ELSE { header("location: index.php?pol=1&zalogowany=''"); } } wylogowanie session_start(); $_SESSION = array(); session_destroy(); header ("Location: index.php"); |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
holy shit...
Ludzie - przecież kolorowanie jest takie łądne... Takie niepowtarzalne... Nikt nie ma takiego jak my na tym forum (wiem coś o tym) Czemu więc z tego nie KORZYSTACIE!!!! ![]() -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat holy shit... To sie zdecyduj.. albo jedno albo drugie ;pCytat Ludzie - przecież kolorowanie jest takie łądne... Takie niepowtarzalne...Nikt nie ma takiego jak my na tym forum (wiem coś o tym) Czemu więc z tego nie KORZYSTACIE!!!!???!!!! "Z jakiego kolorowania?"
Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Z takiego ladnego przycisku z napisem php w oknie dodawania posta
![]() ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat "]Z takiego ladnego przycisku z napisem php w oknie dodawania posta :P :D abojawiem co to jest? wogole pocoto. i tak dalej...
Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Hej kurtz, kolory Ci wyłączyli i udajesz "psa ogrodnika" ;P ?
Cytat "]Z takiego ladnego przycisku z napisem php w oknie dodawania posta abojawiem co to jest? wogole pocoto. i tak dalej...![]() ![]() Ja osobiście nie czytam nawet większych kodów bez bbcode |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat Ja osobiście nie czytam nawet większych kodów bez bbcode Nie - po prostu staram sie powiedziec wszystkim imć moderatorom, że trudno jest kogokolwiek zachecic do bbcode jesli nie wie co to jest lub nigdy z tego nie korzystal/ korzystal rzadko.
Niech kazdy raz klepnie sobie "odpowiedz". w dowolnym miejscu - i teraz nigdy w zyciu nie pisalem na forum phpbb. z czym kojarzy sie napis "kod php"? mi nie bardzo z kolorowaniem skladni. Wniosek: skoro od mieisaca czy dwoch mowie o problemie i nikt jakos nie pokwapil sie to powiem dobitniej - dopoki "gdzies" nie bedzie jasnej informacji jak uzywac bbcode i to co wogole jest (ale NIE odnosnik do FAQ) nie sadze by ktokolwiek przejmowal sie jakimstam czerownym napisem php czy code. Dalej: banalnym pomyslem na dzien dobry jest przed textarea umiesic tresc "Aby twoje wypowiedzi byly bardziej czytelne uzywaj BBCode. Np kod php nalezy otoczac znacznikiem [php][/php] - np [php]echo $imie[/php] da [php:1:e0c9a259e1]echo $imie[/php:1:e0c9a259e1] a zapytania do bazy danych znacznikiem [sql][/sql] - np [sql:1:e0c9a259e1]SELECT Imie FROM Klienci[/sql:1:e0c9a259e1]. Wiecej o znacznikach BBCode znajdziesz w ...." UF Pozdrawiam i moze by wydzielic fragment wateku i przerzucic na Opinie?... -------------------- .. make web your home ..
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za uwagę ale czy mógłbym prosić o odpowiedź na temat bezwzględne wylogowanie? Jest to dla mnie istotne. Dzieki :idea:
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat Pisze właśnie stronkę która umożliwia logowanie się na stronie różnych userów. Wylogowałem sie i wszystko było ok do momentu gdy przez pomyłkę kliknąłem na przycisk wstecz swojej przeglądarki. Wyświetlił mi się komunikat "Strona wygasła" no to wcisnąłem odświerz i ujrzałem iż wylogowany przed chwilą user znów był zalogowany.
Po kolei - przegladam twoj kod i widze ze masz ustawianie zmiennej sesyjnej zlogin - wystarczy wiec ze zeby sprawdzic czy ktos jest zalogowany sprawdzac bedziesz czy istnieje ta zmienna sesyjna. do tego pewnie juz doszedles. druga sprawa to "odswiez" ktore znowu zalogowuje - tutaj moge tylko przypuszac. jesli odsiezasz strone na ktorej wczesniej ciebie zalogowalo to dane (login & haslo) sa ponownie wysylane do skryptu php a ten autentykuje. Aby rozwiazac tego typu problemy zamiast od razu pokazywac "to jest ..." mozesz przekierowywac na inna strone - jesli autentykacja sie powiodla na strone dla zalogowanych, jesli nie na strone dla niezalogowanych. w ten sposob odpada "odswiez" - czesto to najprtsze rozwiazanie. Ja sugerowalbym jednak cos wydaje mi sie lepszego - zamiast niszyc sesje zostaw ja i tylko usun (unregister) zmienne zlogin itd. wowczas aby sprawdzac czy ktos jest zalogowany wystarczy ze bedziesz sprawdzal czy istnieje zmienna sesyjna. jesli nie - uzytkownik nie jest zalogowany lub go wlasnie wylogowales ;) PS uzywanie session_register jest odradzane. Od jakiegos czasu promowane jest np bezposrednie uzywanie $_SESSION["zmienna"] = "wartosc"; <-- w ten sposob deklarujesz zmienna sesyjna, widoczna na nastepnej stronie ;) Jest to o tyle wygodne ze nie musisz tworzyc dodatowej zmeinnej ktora zaraz przekazesz do session_register. latwiej tez troszke nad wszystkim panowac. uf. starczy - jak cos niejasne to pytaj. Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Serdeczne dzięki. Chyba o to mi chodziło. Jakby co to jescze się odezwę.
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam jeszcze jedno pytanie. Może się orientujesz w jaki sposób stworzyć szablony stron tzn żeby X-razy nie pisać tego samego kodu strony np tabele itd.
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat Mam jeszcze jedno pytanie. Może się orientujesz w jaki sposób stworzyć szablony stron tzn żeby X-razy nie pisać tego samego kodu strony np tabele itd. Najlatwiej:[php:1:016db6ca6e]<?php
include("./gora.inc.php"); ?> treees :) <?php include("./dol.inc.php"); ?>[/php:1:016db6ca6e]To rozwiazanie ma jednak wady - kiedy przyrasta stron robi sie wielki balagan. Lepszym pomyslem jest rodzielenie kodu HTML od kodu php - to duzy krok do przodu :) - aby to zrobic mozesz korzystac z systemow szablonowych - na poczatek proponuje zaczac od jakis prostych - np FastTemplate, IT Templates. Artykuly o nich znjadziesz np na http://www.phpbuilder.com . Jesli chcesz i czujesz sie na silach od razu wskoczyc na glebsza wode polecam Smarty - http://smarty.php.net - to wg mnie najpotezniejszy system do szablonow gdy idzie o php - ma bardzo duze mozliwosci i sprawdza sie w dzialaniu. Ostatnio nawet uczestnicy tego forum zaczeli go uzywac ;)p. O smarty jest niewiele materialow po polsku ale na forum php znajdziesz kilka wprowadzjacych artykulow - co gdzie i jak. Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
No to dziekuję za odpowiedź.
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 26.02.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Chyba Cie jeszcze pomęcze. Otóż czy istnieje w php jakaś funkcja która przekierowuje na inną stronę oprócz header("Location: xxxx"); Ponieważ właśnie napisałem to co mi powiedziałeś czyli index.php jako na strcie a po nim z formularza dane do skrypty logującego , a z niego przy użyciu header przekierowanie na stronę dla zalogowanych. Jednak w tej stronie tzn dla strony dla zalogowanych po wciśnięciu wyloguj i wciśnięciu wstecz wracam do stronki gdy byłem zalogowany. Mam nadzieję że w miarę jasno się określiłem
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
W php nie, ale w HTMLu:
[xml:1:17dc60aca1] <meta http-equiv="Refresh" content="0; URL=strona.php">[/xml:1:17dc60aca1] -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:49 |