PHP Random Frage
|
Verfasser |
Nachricht |
|
Beiträge: 1.385
Bewertung: 48
Registriert seit: Dec 2011
Status:
offline
|
PHP Random Frage
Moin,
ich sitze gerade an einem winzigen Script (nein, kein Passwortgenerator, auch wenn man das denken könnte ^^) und nutze da zur Generierung von bestimmten Strings folgende Funktion:
function random($length) { $random_string = ""; $valid_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$num_valid_chars = strlen($valid_chars);
for ($i = 0; $i < $length; $i++) { $random_pick = rand(1, $num_valid_chars); $random_char = $valid_chars[$random_pick-1]; $random_string .= $random_char; } return $random_string; }
Diese wird dann in einer for-Schleife aufgerufen, aber da kommt immer der gleiche String raus. Woran liegt das? Ich habe bisher nicht wirklich tiefgründig mit Zufallszahlen in PHP gearbeitet, daher habe ich leider keinen richtigen Ansatz.
Danke!
Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2014 20:29 von Dream-Code.
|
|
06.06.2014 20:28 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
|
06.06.2014 20:34 |
|
|
Beiträge: 1.385
Bewertung: 48
Registriert seit: Dec 2011
Status:
offline
|
RE: PHP Random Frage
Hmm, so in der Art dachte ich mir das, in Java setzt man auch immer erst nen Seed nur ich hatte die Option in PHP nicht gefunden. Gibt es sowas wie "System.currentTimeMillis()" in PHP auch, also etwas, was die aktuelle Systemzeit in Millisekunden als Rückgabe hat? Das wäre doch ein guter Seed 
|
|
06.06.2014 20:43 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
|
06.06.2014 20:45 |
|
|
Beiträge: 433
Bewertung: 6
Registriert seit: Mar 2011
Status:
offline
|
RE: PHP Random Frage
Sowas musste ich auch mit php machen und kann dir das vlt geben
Mein Script generiert aber ein Passwort und du kannst aussuchen wieviele zeichen es haben soll, habe es mit Switches geschrieben
switch(Variable) <-- Wird abgefragt
case: Wert von Variable;
Auszuführende Aktion/en
break;
ist viele zeilen lang aber funktioniert
War der Beitrag hilfreich? Dann kann ein einfacher Klick auf den Danke-button ja wohl nicht schaden. 
|
|
06.06.2014 21:05 |
|
|
Beiträge: 1.385
Bewertung: 48
Registriert seit: Dec 2011
Status:
offline
|
RE: PHP Random Frage
Das bringt mich ja in dem Zusammenhang nicht wirklich weiter. Ich habe jetzt in der Funktion oben folgende Zeile eingefügt:
Leider kommen trotzdem immer die gleichen Strings raus. Ideen?
|
|
06.06.2014 21:09 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: PHP Random Frage
Leider kommen trotzdem immer die gleichen Strings raus. Ideen?
Über mehrere Seitenaufrufe hinweg? Den seed darfst du nur einmalig setzen, nicht jedesmal wieder, wenn du nämlich dann wieder den gleichen seed setzt bekommst du auch wieder das gleiche ergebnis.
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
|
|
06.06.2014 21:17 |
|
|
Beiträge: 1.385
Bewertung: 48
Registriert seit: Dec 2011
Status:
offline
|
RE: PHP Random Frage
Naja, da die Funktion ja logischerweise (durch Rechenzeit) mit einigen Millisekunden Abstand aufgerufen wird, dürfte der Seed ja jedes Mal anders sein. Es handelt sich an sich immer nur um einen Seitenaufruf, bei dem aber diese Funktion mehrmals hintereinander in einer Schleife genutzt wird.
|
|
06.06.2014 21:23 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: PHP Random Frage
Naja, da die Funktion ja logischerweise (durch Rechenzeit) mit einigen Millisekunden Abstand aufgerufen wird, dürfte der Seed ja jedes Mal anders sein.
Vertue dich da mal nicht, ne Millisekunde ist ne ganze Menge.
[Link: Registrierung erforderlich]
Schau dir mal die Kommentare an, dort sind einige gute Beispiele.
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
|
|
06.06.2014 21:30 |
|
|
Beiträge: 1.385
Bewertung: 48
Registriert seit: Dec 2011
Status:
offline
|
RE: PHP Random Frage
Moin,
egal welches der Beispiele ich teste, es will nicht funktionieren. Da der Code an sich nicht unbedingt Public sein soll, werde ich dir tkausl wenn das in Ordnung ist einfach mal eine PN schreiben mit dem kompletten Code, vielleicht kannst du mir ja helfen. Scheinst immerhin Ahnung von PHP zu haben im Gegensatz zu mir ;D
|
|
06.06.2014 21:37 |
|
|