Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] - ban system
Dominator
post
Post #1





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


co tu można powiedzieć, mam stronę z logowaniem i chcę np: żeby jeden użytkownik nie mógł wejść na następną stronę,(i zeby wyświetliła mu sie informacja) wszystko jest na sesji

plik login.php

  1.  
  2. <?php
  3.  
  4. function checkPass($user, $pass)
  5. {
  6. $login = $_POST['login'];
  7. if(!$fd = @fopen("users/$login.cl50cp1eoq9zj3scotij1a84", "r")) return 1;
  8. $result = 2;
  9. while (!feof($fd)){
  10. $line = trim(fgets($fd));
  11. $arr = explode(":", $line);
  12. if(count($arr)<2)
  13. continue;
  14.  
  15. if($arr[0] != $user)
  16. continue;
  17.  
  18. if($arr[1] == $pass){
  19. $result = 0;
  20. break;
  21. }
  22.  
  23. else
  24. break;
  25. }
  26. fclose($fd);
  27. return $result;
  28. }
  29.  
  30. [b]ob_start();
  31. if($user == "Dominator") ban($user);
  32. {
  33. $_SESSION['komunikat'] = "You're banned";
  34. include('36rr36.php');[/b]
  35. }
  36. if(isSet($_SESSION['zalogowany'])){
  37. header("Location:Categories.php?ChooseCategory");
  38. }
  39.  
  40.  
  41. else if(!isSet($_POST["haslo"]) || !isSet($_POST["login"])){
  42. $_SESSION['komunikat'] = "Enter username and password";
  43. include('36rr36.php');
  44. }
  45.  
  46. else{
  47. $val = checkPass($_POST["login"], $_POST["haslo"]);
  48. if($val == 0){
  49. $_SESSION['zalogowany'] = $_POST['login'];
  50. header("Location:Categories.php?ChooseCategory");
  51. }
  52.  
  53. else if($val == 1){
  54. $_SESSION['komunikat'] = "LOGIN FAILED";
  55. include('36rr36.php');
  56. }
  57.  
  58. else if($val == 2){
  59. $_SESSION['komunikat'] = "Wrong password";
  60. include('36rr36.php');
  61. }
  62.  
  63. else {
  64. $_SESSION['komunikat'] = "Session failed";
  65. include('36rr36.php');
  66. }
  67. }
  68.  
  69. ?>
  70. </div>


tym pogrubionym tekstem jest to ze chce aby nie wszedł na stronę.

tam jest uzytkownik Dominator - czyli zeby dla dominatora wyswietliła się informacja ze nie moze wejsc na następną stronę bo nie ma dostępu

Wpisuję dobry login a złe hasło to wyświetla się info you're banned, a chcę ustalić kto nie może wejść i jak będzie chciała wejść osoba która wpisze dobry login i hasło to żeby było you're banned

pomóóżcie proszę, juz to wałkuję z 2-3 godziny

Ten post edytował Dominator 28.12.2010, 11:46:31
Go to the top of the page
+Quote Post
nekomata
post
Post #2





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


Ja bym dodał po prostu kolumnę w tabeli "users" ban z wartościami zero i jeden jeśli 0 to normalnie logujesz do sessi jeśli 1 to ban i go wywalasz przy logowaniu.
Go to the top of the page
+Quote Post
Dominator
post
Post #3





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


a nie da rady inaczej ?
Go to the top of the page
+Quote Post
ShadowD
post
Post #4





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


To jest najlepsza metoda..
Go to the top of the page
+Quote Post
Dominator
post
Post #5





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Cytat(nekomata @ 28.12.2010, 12:10:26 ) *
Ja bym dodał po prostu kolumnę w tabeli "users" ban z wartościami zero i jeden jeśli 0 to normalnie logujesz do sessi jeśli 1 to ban i go wywalasz przy logowaniu.


Users to jest folder z użytkownikami, jak tam tabelę zrobić ?
Go to the top of the page
+Quote Post
daros17
post
Post #6





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


Chodziło mu o bazę danych. W tabeli gdzie przechowujesz dane o użytkownik dodaj kolumnę ban (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
tehaha
post
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Cytat(daros17 @ 28.12.2010, 17:36:34 ) *
Chodziło mu o bazę danych. W tabeli gdzie przechowujesz dane o użytkownik dodaj kolumnę ban (IMG:style_emoticons/default/winksmiley.jpg)


Tylko, że on nie korzysta z bazy danych tylko z plików....


Najprostszym rozwiązaniem, będzie trzymanie nazwy blokowanych użytkowników w oddzielnym pliku np. blocked.txt i przy logowaniu sprawdzasz czy użytkownik się tam znajduje, jeżeli tak to wywalasz komunikat, że jest blokowany

Aczkolwiek najlepiej jakbyś zrobił to wszystko od nowa w oparciu o bazę danych, bo na plikach to jest kompletnie nie praktyczne i nie wydajne
Go to the top of the page
+Quote Post
PanGuzol
post
Post #8





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

Ostrzeżenie: (0%)
-----


Jak teraz struktura twojego pliku wygląda następująco:
Kod
user:pass
user2:pass2

to dodaj jeszcze na końcu :0 lub :1
Kod
user:pass:0
user2:pass2:1

Wtedy tablica $arr będzie miała 3 argumenty, ten 3 to będzie czy zbanowany czy nie.

Chociaż jak wspomnieli przedmówcy baza danych była by lepsza, chyba że masz zamiar mieć tylko paru użytkowników to bez większej różnicy.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:51