[php]Gaat deze functie werken?
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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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();
}
}
?>
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();
}
}
?>
Van je (eventuele) fouten kun je dan weer leren
Kan moeilijk 1000 codes inserten in db en dan kijken welke gelijk zijn :P
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
En over die functie: Dat heb ik zo gedaan omdat ik random() later weer ergens anders voor nodig heb!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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();
}
?>
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?
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 :)