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
[PHP] Logowanie(sesje) ?
Re: [PHP] Logowanie(sesje) ?
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='
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) ?
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ć
[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ć
Re: [PHP] Logowanie(sesje) ?
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: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='
strona.php?$logowanie=1 ;
tylko
strona.php?logowanie=1;
ale tylko kiedy dane są przysłane za pomocą GET..
