Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie na sesjach
Forum PHP.pl > Forum > Gotowe rozwiązania
marian8
Moje logowanie na sesjach wygląda tak że raz sprawdzam czy $form_uzyt i $form_haslo jest prawidłowe i ustawiam zmienną sesji $ses_uzyt=$form_uzyt i później tylko sprawdzam czy zmienna ta nie jest pusta.

Dopiero co zacząłem używać tego rodzaju logowania i zauważyłem że można łatwo to obejśc znając nazwę zmiennej sesji. Wystarczy ustawić tą zmienną w adresie przegladarki (.../private.php?ses_uzyt=ktokolwiek)

Jeśli macie logowanie realizowane w podobny sposób to radzę to sprawdzić

Ja swoją stronę zabezpieczyłem w ten sposób że czyszczę $ses_uzyt zanim ją zarejestruję.
HaRy
hmm ... a slyszales kiedys o tablicach $_SESSION questionmark.gif

btw. chyba nie do konca Cie rozumiem ...
nobody
Cos jednak nie dokonca doczytales o tych sesjach panie marian :wink: .
Zmienne sesyjne przypisujesz w ten sposob:
[php:1:4fe531289c]<?php
# na samym poczatku dokumentu musi sie znalesc
session_start();
# pozniej rejestrujesz zmienne sesyjne
$_SESSION['uzytkownik']="marian";
$_SESSION['haslo']="phpking";
?>[/php:1:4fe531289c]
Na stronie sprawdzajacej:
[php:1:4fe531289c]<?php
session_start();
# sprawdzanie czy zmienne sesyjne sa zarejestrowane
if(empty($_SESSION['uzytkownik'])||empty($_SESSION['haslo'])){
# jesli nie to przekierowujemy uzytkownika na strone logowania
header("Location: logowanie.php");
}else{
print "Witam ".$_SESSION['uzytkownik']." na mojej stronie.";
}
?>[/php:1:4fe531289c]
marian8
php - Kompendiu (Autor bliżej nieznany)

Cytat
Wydruk 7.1. Uruchamianie sesji i inicjowanie zmiennych
<?php
session_start();
session_register( "aUser", "aAccount" );
$aUser = "Cidnie";
$aAccount = "1016";
?>
<html>
<head>
<title>Podstawy sesji: Strona 1</title>
</head>
<body>
<?php
print( "Użytkownik: $aUser<br>" );
print( "Konto: $aAccount<br>" );
?>
<br><br>
<a href="listing2.phtml">Przejście do strony 2</a>
</body>
</html>


Wydruk 7.2. Użycie zmiennych sesji z wydruku 7.1
<?php
session_start();
?>
<html>
<head>
<title>Podstawy sesji: Strona 2</title>
</head>
<body>
<?php
print( "Użytkownik: $aUser<br>" );
print( "Konto: $aAccount<br>" );
?>
</body>
</html>


i tak również to działa
No przez $_SESSION[] to już chyba problem znika zupełnie...

PS. Z tym phpkingiem to nie przesadzajmy - dopiero się uczę :wink:
marian8
mam jeszcze w takim razie pytanie:
jak sprawdzacie czy zmienna jest zarejestrowana:
1. [manual:9cbfa2d7c5]session_is_registered[/manual:9cbfa2d7c5]
2. isset($_SESSION[])

Po przeczytaniu manuala trochę zgłupiałem...

Dzięki za pomoc
BzikOS
Odp. 2

Btw. przecież w manualu pisze jak wół:

Cytat
Notatka: Jeśli użyta została tablica $_SESSION (lub $HTTP_SESSION_VARS dla php 4.0.6 lub starszych), do sprawdzenia czy zmienna została zarejestrowana w sesji należy użyć funkcji isset() na tablicy $_SESSION.
marian8
No tak, zgłupiałem bo obydwa sposoby sprawdzania czy zmienna jest zarejestrowana u mnie działały:
Dopiero pózniej sprawdziłem wersję php: 4.2.0
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-2024 Invision Power Services, Inc.