[PHP] Logowanie(sesje) ?

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
kroma
Posty: 14
Rejestracja: ndz lip 04, 2004 12:17 am
Lokalizacja: Szczecin
Kontakt:

[PHP] Logowanie(sesje) ?

Post autor: kroma »

witam. chce napisac skrypt do logowania,aby ten w polaczeniu z systemem newsow dawal mi mozliwosc jego administrowania

napisalem narazie krotkie takie cos:
[php]<?php
//LOGOWANIE
if ($logowanie==0)
{
print'<form method="post">';
print'<input type="text" size="10" maxlength="15" name="nick">login<br>';
print'<input type="password" size="10" maxlength="25" name="haslo">pass<br>';
print'<input type="submit" value="loguj">';
print"<br>";
$wynik=mysql_query("SELECT * FROM logowanie WHERE login='$nick';") or die ("!!! BLAD: BLAD w pytaniu sql");

while ($rekord=mysql_fetch_array($wynik))
{
if ($nick==$rekord[0])
{
if ($haslo==$rekord[1])
{
$logowanie=1;
$jako=$nick;
$_SESSION['logowanie']=1;
$_SESSION['jako']="$nick";
}
}
}
} else
{
print("Zalogowany jako: ".$_SESSION['jako']."");
print'<br><a href="?akcja=wyloguj">Wyloguj</a>';
if ($akcja=='wyloguj')
{
$_SESSION['logowanie']=0;
}
}
?>[/php]

loguje sie dobrze (tak mi sie przyjamniej wydaje), chyba ze jestem w bledzie?
ale nie o to chodzi. problem jest w tym ze, jak wpisze do pola formularza login i haslo i dam submit, to dopiero po odwiezeniu strony wyskoczy mi informacja ze sie zalogowalem, czy ktos moglby mi pomoc i podsunac jakies rozwiazanie, jak zrobic zeby od razu mnie logowalo ?
dziekuje i pozdrawiam
porneL
Nowy
Nowy
Posty: 161
Rejestracja: sob lis 27, 2004 7:50 pm
Lokalizacja: Londyn
Kontakt:

Re: [PHP] Logowanie(sesje) ?

Post autor: porneL »

zamiast duzego bloku else musisz drugi raz sprawdzic $logowanie==1

UWAGA: twoj skrypt da się obejść dziecinnie prosto!

strona.php?$logowanie=1

UWAGA2: i to na wiele sposobów!

login: ' or 1 --
lub
login: ' or 1 or logowanie='
Krzysztof Kurzydło
Posty: 9
Rejestracja: czw gru 02, 2004 5:21 pm

Re: [PHP] Logowanie(sesje) ?

Post autor: Krzysztof Kurzydło »

Cóż najłatwiej przerobić całkowicie drugą część skryptu i zrobić cotakiego po zmiennej
[php]$wynik[/php]

[php]<?php
if ($_SESSION['logowanie'] == 0)
if (mysql_num_rows($wynik) == 1) {

$jako=$nick;
$_SESSION['logowanie']=1;
$_SESSION['jako']="$nick";
}
}
elseif ($_SESSION['logowanie'] == 1) {
print("Zalogowany jako: ".$_SESSION['jako']."");
print'<br><a href="?akcja=wyloguj">Wyloguj</a>';
}
if ($akcja=='wyloguj') {
$_SESSION['logowanie']=0;
}

?>[/php]
Jeżeli to nie pomoże to kontynuj temat może coś innego będzie się dało zrobić
szejk
Nowy
Nowy
Posty: 31
Rejestracja: pt wrz 17, 2004 1:43 pm
Kontakt:

Re: [PHP] Logowanie(sesje) ?

Post autor: szejk »

UWAGA: twoj skrypt da się obejść dziecinnie prosto!

strona.php?$logowanie=1

UWAGA2: i to na wiele sposobów!

login: ' or 1 --
lub
login: ' or 1 or logowanie='
hehe ,ciekawe jak skoro dane są przesyłane za pomocą POST więc twoje próby włamania sie były by nadaremne.. i jeśli już to nie:
strona.php?$logowanie=1 ;
tylko
strona.php?logowanie=1;
ale tylko kiedy dane są przysłane za pomocą GET..
ODPOWIEDZ