Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapisanie haseł do pliku .txt, hasła mają po 5 cyfr i są każde w osobnej linii, NIE powtarzają się.
eremen
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 15.02.2012
Skąd: Głogów - Opole

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


  1. for ($i=0;$i<50;$i++) <<- wymyśliłem że to sprawi że będzie 50 wygenerowanych kodów ;)
  2. {
  3. $znaki = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  4. $kod = '';
  5. for ($i=0; $i<5; $i++) // 5 to długość ciągu
  6. {
  7. $kod .= $znaki[rand()%(strlen($znaki))];
  8. }
  9. }


mam funkcję generującą kod i chciałbym aby były one zapisywane do pliku kody.txt(pewnie fopen() fwrite() fclose() - tylko nie wiem jak to umieścić w kodzie ;/ ) i jak zrobić żeby kody się nie powtarzały?


zrobiłem tak:
  1. for ($i=0; $i<50; $i++){
  2. $znaki = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  3. $kod = '';
  4. $fileHandler=fopen("kody.txt","w"); <<- tu otwieram plik
  5. for ($i=0; $i<5; $i++) // 5 to długość ciągu
  6. {
  7. $kod .= $znaki[rand()%(strlen($znaki))];
  8. fputs($fileHandler,$kod); <<- tu zapisuję kod za każdym z 50 razy
  9. }
  10. fclose($fileHandler); <<- tu zamykam
  11. }

jednak jest to źle... jak to mam w kodzie to strona się nie otwiera tylko cały czas ładuje ;]

Ten post edytował eremen 19.02.2012, 13:01:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eremen
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 15.02.2012
Skąd: Głogów - Opole

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


witam (IMG:style_emoticons/default/smile.gif)
trochę przerobiłem kod bo chciałem żeby hasła się nie powtarzały najprostszą metodą
  1. for ($s=0; $s<50; $s++){
  2. srand((double)microtime()*1000000);
  3. $kod=md5(uniqid(rand()));
  4. $kody[] = $kod; // a tutaj zapisujemy go do tablicy
  5. }
  6. file_put_contents('./kody.txt', implode(PHP_EOL, $kody));

ale mam problem ponieważ chciałbym żeby hasła miały 5 znaków a mają więcej, nie wiem jak to zmienić...

hehe działa (IMG:style_emoticons/default/biggrin.gif)

zrobiłem tak:
  1. for ($s=0; $s<50; $s++){
  2. srand((double)microtime()*1000000);
  3. $kod=md5(uniqid(rand()));
  4. // obliczamy ilość znaków w tekscie
  5. $licz = strlen($kod);
  6. // sprawdzamy, czy ilość znaków w tekscie jest większa
  7. // lub równa liczbie znaków po jakiej tekst ma być obcięty
  8. if ($licz>=5)
  9. {
  10. // obcinamy tekst o określoną ilośc znaków
  11. $txt = substr($kod,0,5);
  12. }
  13. else
  14. {
  15. // jeżeli warunek nie jest spełniony pozostawiamy tekst bez zmian
  16. $txt = $kod;
  17. }
  18.  
  19. $kody[] = $txt; // tutaj zapisujemy okrojony kod do tablicy
  20.  
  21. }
  22. file_put_contents('./kody.txt', implode(PHP_EOL, $kody));


Ten post edytował eremen 19.02.2012, 20:25:53
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 13:50