Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Generowanie nowego hasla dla uzytkownika
Forum PHP.pl > Forum > Przedszkole
tenior
Mam problem, ponieważ skrypt czyta tylko pierwszą linie z pliku a poniższych już w ogóle nie czyta. Linia wygląda tak:
Kod
login użytkownika:hasło zapisane md5:cyfry:cyfry:email użytkownika:cyfry


  1. <?PHP
  2. if($_POST['wyslij']){
  3.  
  4. $user = $_POST['user'];
  5. $login = $_POST['login'];
  6. $lol = @file('admin/usr.list');
  7. $i=0;
  8. $dane = explode(':',$lol[$i]);
  9.  
  10. if($user == $dane[4]){
  11.  
  12.  
  13. if($login == $dane[0]){
  14.  
  15. function haslo($limit)
  16. {
  17.  return substr(md5(date("d.m.Y.H.i.s").rand(1,1000000)) , 0 , $limit);
  18. }
  19.  
  20. $has = haslo(7);
  21. $hasmd5 = md5($has);
  22.  
  23. $fg = @fopen('admin/usr.list','r+');
  24. $tresc = @fread($fg,filesize('admin/usr.list'));
  25. @fclose($fg);
  26.  
  27. $wzor = "($login:[a-z0-9]+:[0-9]+:[0-9]+:[a-z0-9A-Z_.-]+@[a-z0-9A-Z_.-]+.[a-z0-9A-Z_.-]+:[0-9]+)";
  28.  
  29. eregi($wzor,$tresc,$lol);
  30.  
  31. if(!is_array($lol)){
  32. echo 'Blad';}
  33.  
  34. $stary = $lol[0];
  35.  
  36. $lols = explode(':',$lol[0]);
  37.  
  38. $nowy = "$lols[0]:$hasmd5:$lols[2]:$lols[3]:$lols[4]:$lols[5]";
  39.  
  40.  
  41. $tresc = str_replace($stary,$nowy,$tresc);
  42.  
  43.  
  44.  
  45. $fg = @fopen('admin/usr.list','w+');
  46. fwrite($fg,$tresc);
  47.  
  48. $temat = "Nowe haslo";
  49. $od = 'From: emial@domena.pl';
  50. $wiadomosc = "Witaj, $login
  51. twoje nowe haslo to:
  52. $has
  53.  
  54. Ta wiadomosc zostala wygenerowana automatycznie.";
  55. mail($user, $temat1, $wiadomosc1, $od1);
  56. $msg1 = "Twoje nowe hasło zostało przesłane na $user";
  57.  
  58. }
  59. else { $message = "Niepoprawny login"; }
  60. }
  61. else { $message = "Niepoprawny email"; }
  62. }
  63.  
  64.  
  65.  
  66. ?>
_olo_1984
czyta tylko 1 linijkę bo tak mu kazałeś, nie zagłębiałem się w całość ale zobacz co zwraca funkcja file oraz wklej sobie ten kodzik i sprawdź:
  1. <?php
  2. $lol = file('admin/usr.list');
  3. $i = 0;
  4. foreach($lol as $line)
  5. {
  6.    print_r(explode(':',$line));
  7.    echo '<br />';
  8.    $i++;
  9. }
  10. ?>

pozdr
tenior
nic mi to nie pomaga, jedynie wyświetla na stronie cala zawartość


// to nie miało rozwiązać Twojego problemu chyba tylko wyjaśnić co robisz źle!
// ayeo
ayeo
Ale przekombinowałeś! Użyj sobie fgetcsv(); zamiast tych regexpów. Możesz iterować po wynikach do woli.

Pozdrawiam!
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.