random generator

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Ik had een vraagje i.v.m. een generator script die ik gevonden had op het internet. Normaal gezien zou hij een random code moeten schrijven van 30 tekens. Nu is het zo dat hij niet altijd 30 tekens weergeeft:

7ap+4tZO/#90:8L5s[?
N`MT!C/8:$(
j<}7r-J&OV_TEkWUSmf1~!|w,6N[\$
4%[*D7_&5y=T6Ev8`dV2
LZBKk{)!?H2mphMEj+1g4%#z}\U&cq
3E&
\J>#4'WZF=1sxzmjqgTpPLvk9$]:b&
FGzy5v]3A0<}Rkc.U7;XB*{fxrHsEt
.r8v'\S/s31aVk)E9?wK}
`Z@?ts5~d+_N}zjGI/;!Q0K{v[)(kT
/WbMSNk!'$KP3_LJ&~8:U;d-r{.=1)
rbP@'m5c

R5Ev|WPV}A,+gwI=*9h]\~[@;p'x8:
J6S@<.!p41EvY,b;dIG{C\VjwZF#MX
~w(\fE7gRr$@K;X{!mqYx>k_=V)+0}
`Q]1a,4V-{[y'PgTS.RfE_xcjN5Uv@
3_?Gw'Xb+mUJc[:THry.E$L6n{ZFQ8
<1OZf)Jvb?y#_0E]>\S`-2PxMH%hB&
zsp>RCJxjk)]4*d$Bb1W\7=v?EY.6|
[W4.,ws7YEqIA-9<}HJZ@VSxnX8%z>
8mE+<%k&Up}vXRbzh|ft)J>Q_\H'?T
wb2&sgZ+3GEr(qz84<5\VW`k'|$-%!
_@?vhftLr/{Y:;p+bE1HTAN7Z2GFKz
gTz~0SLn&/Q`#9=f*W4sZ{<%CkxHAt
@zU,1:`
2.3G`yInHm;Bd/S*!?v6fbY}:N'KP9
IH3A?~Ra7.ZcvxO+9yj(]wF[XrM02z
*wD,78E$%Y9s0
H>|Q@`8?r[nN5GW;'!Zcm9{\pRkF0x

PHP:
function random_generator ($tekens){

// leeg random
$random = "";

// Alle mogelijke tekens
$mogelijkheden = "0123456789abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRESTUVWXYZ-!#$%&'()*+,./:;<=>?@[\\]_`{|}~";

// Voeg random tekens toe tot het aantal nodige tekens behaald is
$i = 0;

while ($i <$tekens) {

    // Neem een teken uit een van de vele mogelijkheden
    $char = substr($mogelijkheden, mt_rand(0, strlen($mogelijkheden)-1), 1);

    // Laat geen 2 dezelfde tekens toe
    if (strpos($random, $char) === false) {

        $random .= $char;

        $i++;
    }
}
return $random;
}

Dit is toch niet normaal of vergis ik mij hierin? Er is zelfs 1 waarvan er geen enkel teken instaat???? :o
 
Laatst bewerkt:
Ik zou het alleen bij letters en cijfers houden.

Alle andere karakters zorgen alleen maar voor verwarring
 
Kan het zijn dat door html_entities of zo'n functie, sommige tekens meer dan 1 teken innemen?
 
Ik bgrijp waar je naar toe wil, maar er staat toch nergens er een vermelding dat een symbool moet omgezet worden naar bvb &euro?
 
Ik zou het alleen bij letters en cijfers houden.

Alle andere karakters zorgen alleen maar voor verwarring

Het is wel zo dat elk leesteken toch minimaal 1 keer voorkomt. Of te wel ligt het daar niet aan, of is het omdat er soms een bepaalde combinatie van leestekens voorkomt, die dan wel problemen veroorzaakt.
 
Ik snap gewoon niet waarom die tekens er bij staan.

Wat voor nut heeft het nou?

Alsof dgaimAEG0e09eagekSseESHEea8g7y7ea6u niet voldoende is :confused:
 
Ik heb je script net even geprobeerd, en volgens mij heeft het er mee te maken, dat bepaalde tekens uit de broncode door de browser niet weergegeven worden. Het ligt dus niet aan je script.

Ik kreeg namelijk het volgende (ik had ook een var_dump gedaan):

Weergave:

PHP:
string(15) "r.[d*

Waarvan de bron is:

PHP:
string(15) "r.[d*<F=IgbO0H|"

Het deel na het sterretje wordt in de bron rood weergegeven.

EDIT: op zich is dat natuurlijk ook niet zo gek, omdat je alle tekens gebruikt, is het goed mogelijk dat er iets als &amp; ontstaat, 5 tekens in de bron (en voor het script), maar slechts 1 teken weergave.

Ik sluit me aan bij Tha Devil en raad je aan om inderdaad alleen letters en cijfers te gebruiken.

EDIT2: het voorbeeld dat ik hierboven aangaf is ook logisch, na de asterisk staat een < dat is voor de browser een teken dat er een tag geopend wordt, en de naam van de tag wordt natuurlijk niet geëchood (of zoiets ;))

EDIT3: Ik weet niet precies hoe je wilt gebruiken, maar als het alleen voor weergave is, zou je natuurlijk:

PHP:
return htmlentities($random);

in je functie kunnen gebruiken, dan heb je gegarandeerd goede weergave, maar als je het als waarde in een url wilt meegeven, weet ik niet precies hoe dat zit (urlencode() of iets dergelijks?).
 
Laatst bewerkt:
Ik snap gewoon niet waarom die tekens er bij staan.

Wat voor nut heeft het nou?

Alsof dgaimAEG0e09eagekSseESHEea8g7y7ea6u niet voldoende is :confused:

Tja, daar heb je zeker en vast wel een punt;)
Tijdens het afschuimen van een aantal andere generators, kwam ik toevallig het volgende tegen en na enige controle kun je de volgende symbolen gebruiken zonder enige problemen die zich voordoen: !@#$%^*_-+=?|: :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan