Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]dodawanie unikatowych haseł do bazy
@rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


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.

Ten post edytował @rtur 23.10.2009, 21:10:33


--------------------
Artur
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Meares
post
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 16.10.2009
Skąd: Łódź

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


  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


--------------------
manual mmocenter
Nie pomagam na PW!
Go to the top of the page
+Quote Post
MateuszS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Meares zawiesilbys mu przegladarke haha.gif W tym while musi byc warunek. Ale lepiej tu zrobic konstrukcje

do {

} while($cos!=$cos3);


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Meares
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 16.10.2009
Skąd: Łódź

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


Nie zawiesiłbym. break zakończy pętle.


--------------------
manual mmocenter
Nie pomagam na PW!
Go to the top of the page
+Quote Post
marcio
post
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


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.



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 04:35