Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]dodawanie unikatowych haseł do bazy
Forum PHP.pl > Forum > Przedszkole
@rtur
Witam. Mam taki kod:
  1. function haslo() {
  2. $min = 2; $max = 6;
  3. srand((double)microtime()*1000000);
  4. for($i=0;$i<rand($min,$max);$i++) {
  5. $znak=chr(rand(48,122));
  6. if (ereg('[0-9a-z]',$znak)) $haslo .= $znak;
  7. else $i--;
  8. }
  9. return $haslo;
  10. }


  1. if ($haslo=='') {
  2. $haslo=haslo();
  3. if ($baza) {
  4. $wynik = mysql_query("SELECT * FROM $sql_tabela1 WHERE haslo='$haslo'");
  5. if (mysql_num_rows($wynik)>0) {
  6. echo 'To hasło już istnieje!';
  7. }
  8. if (mysql_num_rows($wynik)==0) {
  9. mysql_query("INSERT INTO $sql_tabela1 (haslo) VALUES ('$haslo')");
  10. }
  11. echo 'twoje hasło to: $haslo';
  12. }
  13. }

Chodzi mi o to żeby losować hasło dopóty takie nie pojawiło się w bazie, jeśli jest już unikalne to dodajemy go do bazy. Myślę sobie że pewnie gdzieś trzeba pomiędzy wstawić pętle, ale którą pętle i gdzie? Może mnie ktoś naprowadzić?

Z góry dziękuje za pomoc.
Meares
  1. <?php
  2.  
  3. $haslo = haslo();
  4. $sql = 'SELECT * FROM `tabela` WHERE `haslo` = "'.$haslo.'"');
  5. while(true) {
  6. if($nums = mysql_num_rows($sql) > 0) {
  7. $haslo = haslo();
  8. mysql_query('SELECT * FROM `tabela` WHERE `haslo` = "'.$haslo.'"');
  9. } else {
  10. mysql_query('INSERT INTO `tabela` (`haslo`) VALUES ("'.$haslo.'")');
  11. break;
  12. }
  13. }
  14. echo 'Dodano!';
  15.  
  16. ?>
Pisane z palca. Nie sprawdzane, ale raczej działa. haha.gif
MateuszS
Meares zawiesilbys mu przegladarke haha.gif W tym while musi byc warunek. Ale lepiej tu zrobic konstrukcje

do {

} while($cos!=$cos3);
Meares
Nie zawiesiłbym. break zakończy pętle.
marcio
Po co sie bawic w takie bzdety jak mozna zrobic tak:

  1.  
  2. $pwd = substr(md5(time()), 0, 6);
  3.  


I nie ma bata zeby haslo sie powtorzylo i do tego nie zawala sie bazy i nie robi sie niepotrzebnych zapytan.

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.