Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie i dopis do logów
Forum PHP.pl > Forum > Przedszkole
Athlan
Mam taki skrypt logowania:

  1. <?
  2.  
  3. if($_GET['action'] == "login") {
  4. $users = file("users.php"); // plik z userami
  5. if(!eregi("<?",$members)) // pomija pierwszą linię zabezpieczjącą baze {
  6. for($i = 0; $i < count($users); $i++) {
  7. list($username, $password, $level) = explode("|", $users[$i]); // odczytuje dane i je rozdziela
  8.  
  9. if(isset($_POST['login']) && isset($_POST['pass'])) // sprawdza istnienie danych z FORM {
  10. if($_POST['login'] == $username && $_POST['pass'] == $password ) {
  11.         @session_register('username');
  12.         @session_register('password');
  13.  
  14.         $_SESSION['username']    = "$username";
  15.         $_SESSION['password']     = "$password";
  16.         $_SESSION['level']     = "$level";
  17.         $_SESSION['data']     = date("G:i:s");
  18.  
  19. $ip = $_SERVER['REMOTE_ADDR'];
  20. $date = date("d.m.Y, G:i:s");
  21. $username_sess = $_SESSION['username'];
  22.  $log = fopen("d/database_lt.txt", "a");
  23.  fwrite ($log, "$username_sess|$date|$ip|n"); // dopisuje do logu poprawnych zalogowań
  24.  fclose ($log);
  25.  
  26. }
  27.  
  28. else {
  29. $login_result = "<p><font color="red">Podano nieprawidłowy login/haslo.</font><br>Zapisano host i IP jako włamanie do systemu.";
  30. $ip = $_SERVER['REMOTE_ADDR'];
  31. $date = date("d.m.Y, G:i:s");
  32. $username_sess = $_POST['login'];
  33.  $log = fopen("d/database_lf.txt", "a");
  34.  fwrite ($log, "$username_sess|$date|$ip|n"); // dopisuje do logu niepoprawnych zalogowań
  35.  fclose ($log);
  36. }
  37. }
  38.  
  39. }
  40. }
  41. }
  42. if($_GET['action'] == "logout") {
  43. echo'<meta http-equiv="refresh" content="0; url=index.php">';
  44. }
  45.  
  46. ?>


I taki plik z danymi i hasłami:

  1. <? die('Nie możesz podglądywać użytkowników i ich haseł!!'); ?> // Zabazpiecza plik z hasłami
  2. root1|pass1|3|
  3. root2|pass2|0|
  4. root3|pass3|0|
  5. root4|pass4|2|


Skrypt sprawdza login i hasło, jeżeli są poprawne to loguje i dopisuje do pliku poprawne zalogowanie. Jeżeli jednak nie zalogujemy się poprawnie, dopisuje login, IP i datę do pliku, gdzie przechowywane są dane niepoprawnych logowań.

I teraz jest duży problem.
Jak poprawnie się zaloguje na użytkownika to dopisuje go normalnie do logowań poprawnych, a do niepoprawnych aż 4 razy blink.gif , jak się zaloguje niepoprawnie to dopisuje tylko do zalogowań niepoprawnych też 4 razy dry.gif .

Jak to naprawić??

P.S. Wiem tylko że zależy to chyba od tego, że jest w pętli i wali linijka 6 (for($i = 0; $i < count($users); $i++)), ale jak w pętli jakiś element odpętlić?? sadsmiley02.gif
dtb
break; // zakancza wykonanie petli
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.