Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] - ban system
Forum PHP.pl > Forum > Przedszkole
Dominator
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
nekomata
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.
Dominator
a nie da rady inaczej ?
ShadowD
To jest najlepsza metoda..
Dominator
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ć ?
daros17
Chodziło mu o bazę danych. W tabeli gdzie przechowujesz dane o użytkownik dodaj kolumnę ban winksmiley.jpg
tehaha
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 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
PanGuzol
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.
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-2025 Invision Power Services, Inc.