Hallo mensen,

ik ben hier nieuw, maar ik heb een vraagje. IK heb gister een mini functie die een random password van 32 tekens produceerd.. Wanneer deze key is gemaakt, checkt een andere functie, die om de fucntie die een random pass aanmaakt heen staat, of de gemaakte pass al niet in de db staat. Maar ik ben niet zeker of deze functie wel gaat werken... En ik heb ook geen idee hoe ik het kan gaan testen.

Kan iemand mij vertellen of deze geneste functie gaat werken?

<?php
function controlleer()
{
function random()
{
srand ((double) microtime() * 1000000);
$random = rand(0,9999);
$random .=md5(time());
$random = md5($random);
$random .=time();
return $random;
}
$rand = random();
$s_query = "SELECT key FROM verzonden WHERE key = '$rand'";
$result = mysql_query($s_query) or die("Error: " . mysql_error());
if (mysql_num_rows($result) == 0)
{
//insert key in db
}
else
{
controlleer();
}
}

?>
Pff probeer het gewo0n :)
Van je (eventuele) fouten kun je dan weer leren
En, hoe wou je dat gaan testen? :)

Kan moeilijk 1000 codes inserten in db en dan kijken welke gelijk zijn :P
waarom niet?
for($i=0;$i<1000;$i++){
controlleer();
}

enne waarom een functie in een functie?
ik zou dat geval niet als aparte functie doen maar gewoon als onderdeel van de grote functie
of iig buiten de grote functie zetten
Ja, daar zat ik ook al aan te denken.

En over die functie: Dat heb ik zo gedaan omdat ik random() later weer ergens anders voor nodig heb!
dat kan, maar zet hem dan iig buiten die andere functie ;)

<?php
function controlleer()
{
$rand = random();
$s_query = "SELECT key FROM verzonden WHERE key = '$rand'";
$result = mysql_query($s_query) or die("Error: " . mysql_error());
if (mysql_num_rows($result) == 0)
{
$result = mysql_query('INSERT INTO verzonden (key) VALUES ('.$rand.')') or die("Error: " . mysql_error());
}
else
{
controlleer();
}
}

function random()
{
srand ((double) microtime() * 1000000);
$random = rand(0,9999);
$random .=md5(time());
$random = md5($random);
$random .=time();
return $random;
}

for($i=0;$i<1000;$i++){
controlleer();
}
?>
Ik zal het doen... Maar wat is het voordeel ervan?
functie in een functie mag volgens mij niet eens (ik kan het mis hebben want php laat wel meer vreemde dingen toe)

maar ik vraag me af wat het voordeel ervan zou zijn?
functies zijn er juist om dingen apart te houden
dan moet je de functies dus niet in elkaar gaan stoppen :P
Ook al zou het mogen, alles in een functie is - behalve wanneer dit anders is aangegeven door de scripter, jij dus - private data, maw is alleen toegankelijk door de functie waar het instaat. Als je hem meerdere malen nodig hebt, heb je er dus niets aan ...
Hoe groot denk je dat de kans is dat een wachtwoord 2 x voorkomt? Je gebruikt immers time en das elke seconde anders :)
met md5 kunnen meerdere waardes dezelfde hash hebben, dus het is zeker mogelijk :)

Reageren