funktion passwort() in while Schleife => redaclare

sandroP

Erfahrenes Mitglied
Hallo,

Ich möchte an für alle Eintrage in meiner Datenbank ein seperates Passwort erstellen.
Nun rufe ich die Datensätze mit einer while-Schleife auf.

Da sich eine Funktion aber nur einmal aufrufen lässt, läuft meine Schleife nicht durch.

Kann ich nicht einfach den Namen der Funktion automatisch ändern?
Also so: funktion $kundennummer()
Oder einfach die Funktion nach jedem Datensatz in der Schleife löschen?

Hier mal mein Versuchs-Code:
PHP:
<?

// Daten aus Datenbank holen  
  include "zu/inc84.php";
  $sqlab = "SELECT mail FROM freunde";
   $res = mysql_query($sqlab);
   $num = mysql_num_rows($res);
   while ($zeile = mysql_fetch_assoc($res))

{
// Zufallspasswort erstellen
 function passwort()  {
    $apass = "";
    $zeichen = array ('0','1','2','3','4','5','6','7','8','9');
    srand((double)microtime()*1000000);
    shuffle($zeichen);
    $lange = 5; // Passwortlänge
    for ($z=0;$z<$lange;$z++) $carrier[$z] = next($zeichen);
    for ($z=0;$z<$lange;$z++) $apass .= $carrier[$z];
    return $apass;
    }

  $pass1 = "".passwort();

// Passwort verschlüsseln  
  $pass = md5($pass1);
  
// Ausgabe  
	echo "$zeile[mail] - $pass1 - $pass<br>";
}  

?>
 
Hallo,

soweit ich das beurteilen kann, kannst du doch deine Funktion auch ausserhalb der While-Schliefe platzieren, die bleibt doch sowiso immer gleich?

Gruß
BK
 
Du meinst so?

-Bekomme ich dann trotzdem noch verschiedene Passwörter?

PHP:
[<? 

// Zufallspasswort erstellen 
 function passwort()  { 
    $apass = ""; 
    $zeichen = array ('0','1','2','3','4','5','6','7','8','9'); 
    srand((double)microtime()*1000000); 
    shuffle($zeichen); 
    $lange = 5; // Passwortlänge 
    for ($z=0;$z<$lange;$z++) $carrier[$z] = next($zeichen); 
    for ($z=0;$z<$lange;$z++) $apass .= $carrier[$z]; 
    return $apass; 
    } 

// Daten aus Datenbank holen   
  include "zu/inc84.php"; 
  $sqlab = "SELECT mail FROM freunde"; 
   $res = mysql_query($sqlab); 
   $num = mysql_num_rows($res); 
   while ($zeile = mysql_fetch_assoc($res)) 

{ 
  $pass1 = "".passwort(); 

// Passwort verschlüsseln   
  $pass = md5($pass1); 
   
// Ausgabe   
    echo "$zeile[mail] - $pass1 - $pass<br>"; 
}   

?>
 
Hi,

probiers doch einfach mal aus ;)
Und ja, du bekommst verschiedene, da du den Zufallsgenerator mit der Funktion srand() anschaltest.

Gruß
BK
 
Zurück