Mam problem z zalogowaniem się do bazy. Napisałem taki skrypt:
[php:1:766bc4b097]<?php
@$pass = $_POST["Haslo"];
@$user = $_POST["Login"];
function checkPass($pass, $user)
{
$link = mysql_connect("localhost");
$flag = mysql_select_db($praca);
if(!$link || !$flag){
//echo("Problem z połączeniem z bazą danych");
return false;
}
$sql="SELECT Haslo FROM Prowadzacy WHERE Login = '".$user."'";
$result = mysql_query($sql);
if(!$row){
//echo("Problem z bazą danych.");
mysql_close($link);
return false;
}
$row = mysql_fetch_row($result);
if(!$row){
mysql_close($link);
return false;
}
if($row[0] != $pass){
mysql_close($link);
return false;
}
else {
mysql_close($link);
return true;
}
}
if(!checkPass($pass, $user)){
echo("<html><body><center>");
echo("<h2>Niepoprawne dane!</h2>");
echo("</center></body></html>");
}
else{
include('index.html');
}
?>[/php:1:766bc4b097]
Ale podczas logowania (po wprowadzeniu loginu i hasła które znajdują się w tabeli Prowadzacy) za każdym razem pojawia mi sie komunikat niepoprawne dane. Nie wiem dlaczego tak się dzieje.
Jeżeli znajdziecie jakiś błąd to dajcie znać.
Synaps
9.04.2004, 18:01:06
powinno byc chyba tak 8)
[php:1:82b0f35795]<?php
$sql="SELECT Haslo FROM Prowadzacy WHERE Login = '".$user."'";
$result = mysql_query($sql);
if(!$result){
//echo("Problem z bazą danych.");
mysql_close($link);
return false;
}
?>[/php:1:82b0f35795]
zamiat
$result miales
$row stad błąd
popracuje troche nad debugiem :wink:
Faktycznie tu był błąd. Wielkie dzięki.
Mam jeszcze jedno pytanie jak ustawić prawa dostępu wybranemu użytkownikowi po zalogowaniu do odpowiednich stron?
Chodzi mi o to że po zalogowaniu startuje strona główna na której są różne odnośniki i np. prowadzący ma prawo dostępu do wybranych odnośników a np. zwykły użytkownik ma prawa do innych.
Da się to jakoś napisać w php?
otacon
10.04.2004, 11:02:01
do kazdego uzytkownika mozesz dodac jeszcze jedno pole z prawami (np admin - 0, takie_prawa - 1, inne_prawa - 2...), jak user sie zaloguje to ustawiasz to w sesji i potem w zaleznosci od tej wartosci wyswietlasz co ci sie tam podoba....
Synaps
10.04.2004, 12:44:52
Żeby zrobić system praw bardziej elastycznym , zastanów się nad wprowadzeniem grup użytkowników. Dzięki temu będziesz miał mozliwość tworzenia grup w stylu np. admni, moderatorzy, newsmani, power-users, user etc etc. Żeby to zrobić zrób np. tak : [to tylko przykład]
- dodajesz tablice groups[id , group_name]
- dodajesz tablice user_group [id, user_id, group_id]
Daje Ci to możliwośc dynamicznego dodawania userów do grup i
nie musisz zmieniać nic w tabeli z użytkownikami.
- następnie w kodzie juz decydujesz do jakich elemtów grupa ma prawo (bazując tu na group_id)
To tak w skrócie 8)
huka
10.04.2004, 18:15:56
No właśnie słyszałem że najlepiej te prawa dostępu zrobić za pomocą sesji. Tylko niestety ja nie bardzo wiem jak to napisać.
Jak macie jakieś propozycje to podeślijcie.
ja toi robie tak:
1. przy rejestracji nowego usera w tabeli `user`mam pole 'poz' i w nim wstawiam cyferkę '3' [potem ewentualnie po zalogowaniu admina to zmieniam na inną cyfrę]
2. przy logowaniu wyciągam z bazy to pole i sprawdzam wartość dla logującego się właśnie usera i zapisuje do sesji [na początku strony musisz dać session_start(); ] za pomocą
[php:1:c37bfc0384]<?php
$query = mysql_query("SELECT * FROM `user` WHERE nick='$login' AND haslo='$xhas'") or die(mysql_error());
$cz = mysql_fetch_array($query);
$_SESSION['poz'] = $cz['poz'];
?>[/php:1:c37bfc0384]
no i teraz na głównym indexie dajesz kodzik
[php:1:c37bfc0384]<?php
if($_SESSION['poz'] == "1") {
/wyswietlasz menu dla admina
} elseif($_SESSION['poz'] == "2") {
//wyswietlasz menu dla moderatora
} elseif($_SESSION['poz'] == "3") {
//wyswietlasz menu dla usera
}
?>[/php:1:c37bfc0384]
huka
13.04.2004, 19:06:33
Kurcze poprawiłem ten błąd co zrobiłem na początkuz tym logowaniem (zamieniłem $row na $result) ale nadal nie chce mi to działać.Co najgorsze nie wiem dlaczego i co tam jest źle.
Może macie jakieś ciekawe skrypty logowania z hasłami w bazie danych albo jakiś namiar skąd można sobie taki skrypt pobrać?
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.