CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden |
04.01.2010, 14:56:51
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
|
|
AW: CreateRandomCode()
Zitat:
Zitat von feuervogel
das ist doch alles...nicht so richtig sinnvoll.
warum shuffle mehrmals aufrufen? eimal reicht doch völlig und dann mit array_slice ein stück rausschneiden.
|
Dann gibts aber keine Doppelten....
PHP-Code:
function createRandomCode($num)
{
$array=array('','a','A','b','B','c','C','d','D','e','E','f','F',
'3','4','5','6','7','8','9','0','-','_');
$code='';
for(;strlen($code)<$num;$code.=$array[array_rand($array)]);
return $code;
}
|
05.01.2010, 22:01:01
|
Anfänger
|
|
Registriert seit: Oct 2008
Alter: 36
Beiträge: 26
|
|
AW: CreateRandomCode()
Zitat:
Zitat von DokuLeseHemmung
Dann gibts aber keine Doppelten....
PHP-Code:
function createRandomCode($num)
{
$array=array('','a','A','b','B','c','C','d','D','e','E','f','F',
'3','4','5','6','7','8','9','0','-','_');
$code='';
for(;strlen($code)<$num;$code.=$array[array_rand($array)]);
return $code;
}
|
Ist der besser, schneller oder zuverlässiger als mein Code? Interessiert mich halt, weil ich sehr daran interessiert bin meinen Code zu verbessern. Demnächst kommen noch andere schwierigere Code-Schnipsel :P. Geht einfach darum, dass das für mich eine Art Lernprozess ist. Ich denke das ich so am meisten und am besten lerne :)
|
05.01.2010, 22:02:44
|
|
Senior Member
|
|
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
|
|
AW: CreateRandomCode()
wusstest du, dass du die zeit messen kannst? du könntest in ner for-Schleife einfach mal 10.000 Codes erstellen lassen und die Zeit messen was schnell und langsam ist, aber das hängt immer je nach Hardware ab ^^
__________________
the best way to be ready for the future is to invent it
|
05.01.2010, 22:11:15
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
|
|
AW: CreateRandomCode()
Zitat:
Zitat von hmp
Ist der besser, schneller oder zuverlässiger als mein Code? Interessiert mich halt, weil ich sehr daran interessiert bin meinen Code zu verbessern. Demnächst kommen noch andere schwierigere Code-Schnipsel :P. Geht einfach darum, dass das für mich eine Art Lernprozess ist. Ich denke das ich so am meisten und am besten lerne :)
|
Natürlich ist mein Code schöner als der aus deinem Eingangsposting!
Denn du durchläufst mit Foreach das Array.
Das ist völlig Sinn frei.
Aber eine Schleife muss schon sein....
Hier mal ein Code welcher dank Pseudosilben leicht zu merkende Passwörter generiert.
Die dürfen dann auch etwas länger sein.
PHP-Code:
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
// gen_passwort erzeugt automatisch passwörter
function gen_passwort($buchstaben=0,$zahlen=0)
{
$buchstaben = max(0,$buchstaben);
$zahlen = max(0,$zahlen);
if(0 === $buchstaben && 0 === $zahlen)
{ // dann gib dem Zufall eine Chance
$buchstaben = mt_rand(5,8); // anzahl Buchstaben
$zahlen = mt_rand(3,5); // anzahl Zahlen
}
$konsonanten ='wrtzpsdfghklyxcvbnm';
$vokale='aeiou';
$passwort = '';
for ($i=0;$i<$buchstaben;$i++)
{
if (($i % 2)<1)
{
$p = mt_rand(0,strlen($konsonanten)-1);
$bst = $konsonanten{$p};
if(mt_rand(0,1)>0) $bst = strtoupper($bst);
$passwort .= $bst;
}else
{
$p = mt_rand(0,strlen($vokale)-1);
$passwort .= $vokale{$p};
}
}
for ($i=0;$i<$zahlen;$i++) $passwort .= mt_rand(1,9);
return $passwort;
}
if(isset($_GET['action']) && 'download' === $_GET['action'])
{
header("Content-type: application/x-applikation");
readfile(__FILE__);
exit;
}
if(isset($_GET['action']) && 'showsource' === $_GET['action'])
{
highlight_file(__FILE__);
exit;
}
if (isset($_POST['submit']))
{
$buchstaben = min(40,$_POST['buchstaben']);
$zahlen = min(40,$_POST['zahlen']);
$anzahl = min(40,max($_POST['anzahl'],1));
}else
{
$buchstaben = 0;
$zahlen = 0;
$anzahl = 10;
}
?>
<a href="?action=download">Download</a> ||
<a href="?action=showsource">ShowSource</a>
<hr>
<form action="" method="post">
Buchstaben:<br>
<input type="text" name="buchstaben" value="<?php echo $buchstaben; ?>"><br><br>
Zahlen:<br>
<input type="text" name="zahlen" value="<?php echo $zahlen; ?>"><br><br>
Anzahl:<br>
<input type="text" name="anzahl" value="<?php echo $anzahl; ?>"><br><br>
<br>
<input type="submit" name="submit" value="Generieren">
</form>
<?php
// ausgabe
for ($i=0;$i<$anzahl;$i++)
{
echo gen_passwort($buchstaben,$zahlen).'<br>';
}
?>
|
02.06.2010, 20:31:53
|
Anfänger
|
|
Registriert seit: May 2010
Ort: München
Alter: 68
Beiträge: 5
|
|
AW: CreateRandomCode()
Anfang:
AaBbCcDdEe FfGgHhiJKk LMmNnoPpQq RrSsTtUuVv WwXxYyZz12 3456789
=> 57 gültige Zeichen
Keine Verwechslungsgefahr (kleines o aber keine Null oder großes O usw.) funktioniert seit Jahren wunderbar.
57 ist eine schöne runde Primzahl.
In acht Zeichen passt eine IP oder ein Timestamp rein.
Du brauchst eine geile Zufallszahl? Schau Dir mal den Quelltext (erste Zeile) einer Google-Abfrage an!
|
13.07.2010, 12:55:13
|
Anfänger
|
|
Registriert seit: Aug 2008
Alter: 40
Beiträge: 21
|
|
AW: CreateRandomCode()
Zitat:
Zitat von 1-1-1
57 ist eine schöne runde Primzahl.
|
Damit stellst du ca 2300 Jahre Mathematik auf den Kopf... :D
|
14.07.2010, 10:13:42
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
|
|
AW: CreateRandomCode()
Bevor das hier unkritisiert stehen bleibt:
PHP-Code:
$code.=end(shuffle($array));
end() erwartet ein Array.
shuffle() liefert aber keins.
Aus dem Handbuch:
Zitat:
mixed end ( array &$array )
bool shuffle ( array &$array )
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:36:03 Uhr.
|