Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Generowanie nowego hasla dla uzytkownika, baza oparta na plikach
tenior
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 2
Dołączył: 16.11.2008

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


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. ?>
Go to the top of the page
+Quote Post
_olo_1984
post
Post #2





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


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
Go to the top of the page
+Quote Post
tenior
post
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 2
Dołączył: 16.11.2008

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


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
Go to the top of the page
+Quote Post
ayeo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Ale przekombinowałeś! Użyj sobie fgetcsv(); zamiast tych regexpów. Możesz iterować po wynikach do woli.

Pozdrawiam!
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:16