Portal > Foren > PHP > PHP-Programmierung > Zufälligen String generieren
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 19.08.2006, 12:17 Nach oben    #1
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard Zufälligen String generieren

Hi Leute

Mir ist irgendwie gerade entfallen mit welcher Funktion man einen zufälligen String generieren kann, ich suche auf php.net kann sie aber nicht finden
Wäre net wen sie jemand rasch posten könnte.

LG
Garnele
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 12:32 Nach oben    #2
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard

habs gefunden
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 14:46 Nach oben    #3
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

und welche "lösung" hast du?
wäre wichtig der vollständigkeit wegen
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 15:20 Nach oben    #4
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

Ich verwende dafür diese Funktion (hab ich irgendwo gefunden, ist nicht von mir
Code:
function getpass() {
   $newpass = "";
   $laenge=6;
 $string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
   mt_srand((double)microtime()*1000000);
    for ($i=1; $i <= $laenge; $i++) {
        $newpass .= substr($string, mt_rand(0,strlen($string)-1), 1);

                                               }

    return $newpass;

}
mfg
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.08.2006, 23:23 Nach oben    #5
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard

Hi Waren faith

Sorry, ich habs ganz einfach gemacht:

PHP-Code:
$ich mt_rand(100,9999999);
sub_str($ich03); //Damit alle gleich lang sind 
LG
Garnele
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.08.2006, 10:40 Nach oben    #6
Neuer Benutzer
 
Registriert seit: 22.08.2006
Beiträge: 8
Standard

hi!
hab da 2 funktionen für:
PHP-Code:
function str_random($laenge=8,$strpool="ABCDEFGHKMPQRSTWXYZabcdefghkmpqrstuxyz23456789")

    
$str '';
    
    for(
$i 0$i $laenge$i++)
    {    
$str .= substr($strpool,(rand()%(strlen ($strpool))), 1);    }

    return 
$str;

und einmal was leicht merkbare strings erzeugt:
PHP-Code:
function str_random_easy($laenge=8)

    
$conso=array('b','c','d','f','g','h','j','k','l','m','n','p','r','s','t','v','w','x','y','z');
    
$vocal=array('a','e','i','o','u');
    
$pass="";
    
    
srand ((double)microtime()*1001985);
    
    for(
$i 1$i <= $laenge$i++)
    {
        
$pass.=$conso[rand(0,19)];
        
$pass.=$vocal[rand(0,4)];
    }
    
    return 
$pass;


Geändert von Ben (22.08.2006 um 11:59 Uhr) Grund: PHP-Tags hinzugefügt
darksky ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.08.2006, 14:04 Nach oben    #7
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Zitat:
Zitat von Garnele
Sorry, ich habs ganz einfach gemacht:
PHP-Code:
$ich mt_rand(100,9999999);
sub_str($ich03); //Damit alle gleich lang sind 
LG
Garnele
Warum bis Zufallszahl bis 9999999 generieren wenn du nur 3 Zeichen brauchst?
dann mach doch mt_rand(100,999); dürfte sicher auch ein kleinwenig performanter sein
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.08.2006, 14:22 Nach oben    #8
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Tip an darksky:
Du kannst ein einziges Zeichen einen Strings auch in der Array-Form holen.
PHP-Code:
$string "dev-guide";
echo 
$string[4]; 
Die Ausgabe ist dann das Zeichen mit dem Index 4, also das "g".

Getestet unter PHP 5.1.4.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.08.2006, 15:20 Nach oben    #9
Neuer Benutzer
 
Registriert seit: 22.08.2006
Beiträge: 8
Standard

danke
gleich korrigiert. absolut verpennt das das auch geht ^^
darksky ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.08.2006, 15:37 Nach oben    #10
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

lol ich würde vermutlich sowas basteln:

PHP-Code:
<?php

$alphabet 
= array("A""B""C""D""E""F""G""H""I""J""K""L""M""N""O""P""Q""R""S""T""U""V""W""X""Y""Z");
$count 0;
$laenge 6;
$string ="";

while(
$count<$laenge)
{
$rand rand(025);
$string .= $alphabet[$rand];
$count++;
}

echo 
"$string";

?>
Funzt wunderbar, habs getestet^^

So und das ganze auch als FUnktion für die, die die Länge des erzeugten Strings immer individuell bestimmen möchten:
PHP-Code:
function rand_string($laenge)
{
$alphabet = array("A""B""C""D""E""F""G""H""I""J""K""L""M""N""O""P""Q""R""S""T""U""V""W""X""Y""Z");
$count 0;
$string ="";

while(
$count<$laenge)
{
$rand rand(025);
$string .= $alphabet[$rand];
$count++;
}

return 
$string;

Grüßle
Booki

//edit: Code optimiert^^
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!

Geändert von Bookworm (24.08.2006 um 12:41 Uhr)
Bookworm ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.08.2006, 19:10 Nach oben    #11
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 244
Standard

@darsky,

dein Code hat nen kleinen Denkfehler. Die Passwörter werden doppelt so lang, wie gewünscht.

Hab das mal gefixt:
PHP-Code:
function str_random_easy($laenge=8)

    
$conso=array('b','c','d','f','g','h','j','k','l','m','n','p','r','s','t','v','w','x','y','z');
    
$vocal=array('a','e','i','o','u');
    
$pass="";
    
$type=1;
    
    
srand ((double)microtime()*1001985);
    
    for(
$i 1$i <= $laenge$i++)
    {
        
$type 1-$type;
        if (
$type === 0)
        {
            
$pass.=$conso[rand(0,19)];
        }
        else
        {
            
$pass.=$vocal[rand(0,4)];
        }
    }
    
    return 
$pass;

__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 00:50 Nach oben    #12
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

@bookworm
PHP-Code:
$string $string."$alphabet[$rand]"
Wenn wir hier schon mit codes um uns schmeissen, dann bitte auch optimieren:
PHP-Code:
$string .= $alphabet[$rand]; 
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 12:09 Nach oben    #13
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Genau, und wenn wir schon dabei sind:
PHP-Code:
<?php
function generateAppreciablePassword($iLenght 8) {
        
$sPassword '';
        
$aCons = array('b''c''d''f''g''h''j''k''l''m''n''p''q''r''s',
                       
't''v''w''x''y''z');
        
$aVoc  = array('a''e''i''o''u');
        
$bIsVocal false;

        
$iConsCount count($aCons) - 1;
        
$iVocCount  count($aVoc) - 1;

        for(
$iCount 0$iCount $iLenght$iCount ++) {
                if(
$bIsVocal === true) {
                        
$sPassword .= $aVoc[(rand(0$iVocCount))];
                        
$bIsVocal false;
                }

                else {
                        
$sPassword .= $aCons[(rand(0$iConsCount))];
                        
$bIsVocal true;
                }
        }

        return 
$sPassword;
}
?>
Das hatte ich vor ner Zeit mal gemacht, fand ich etwas sauberer als die gepostet Möglichkeit.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 12:39 Nach oben    #14
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

@WarrenFaith: Ich kannte .= nicht, also kann ichs auch nicht nutzen um meine Codes zu optimieren oder?

Achso, kann mir mal jemand erklären, was dieses === sein soll? Im Manual hab ich nur bei den Kommentaren mal en Nebensatz dazu gefunden, wo was von Bollevariabeln steht... Überprüft der jetzt ob die Variable einen logischen Wert hat oder was?
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 12:43 Nach oben    #15
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Zitat:
Bollevariabeln
? Du meinst Booleanvariablen oder Boolvariablen, oder?

Ansonsten hilft dir das weiter: http://de2.php.net/manual/en/types.comparisons.php
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 16:51 Nach oben    #16
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Gibts auch auf zend.com ein Videotutorial ^^
http://www.zend.com/de/company/videos
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 19:38 Nach oben    #17
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

Jaaaaahha^^ Ich meinte boolesche Variablen. Kommt davon wenn amn keine Tippfehler machen will.
Aber ich hab es trotzdem nicht gepeilt was das DIng jetzt bewirken soll....
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 19:52 Nach oben    #18
Blubb... öfz
 
Benutzerbild von ljungi
 
Registriert seit: 16.03.2006
Ort: Berlin
Beiträge: 419
Standard

Also...
wenn jemand nen String übergibt, und du den auf True überprüfst, ist er wahr.
Wenn du aber NUR boolsche Werte überprüfen willst, musst du === machen. Denn so behandelt er NUR booleans. Strings werden dann als false erkannt.
__________________
Vive la France! Welcome to Sarkoworld...
ljungi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.08.2006, 20:54 Nach oben    #19
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

== ist der normale Vergleichsoperator.
=== entspricht obigem, berücksichtigt aber außerdem den Datentyp.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.08.2006, 13:50 Nach oben    #20
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

ah^^
okay jetzt hab ichs begriffen
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an