vervangen van eregi
Nu wil ik alles online zetten gaat het mis met de activatiecode functie.
Eregi is niet meer mogelijk.
Hoe verander ik dat in de code dan wel wat komt daarvoor in de plaats?
function activatiecode ($lengte) {
$activatie = "";
mt_srand ((double) microtime() * 1000000);
while (strlen($activatie) < $lengte) {
$kiezen = chr(mt_rand (0,255));
if (eregi("^[a-zA-Z0-9]$", $kiezen)) $activatie = $activatie.$kiezen;
}
return ($activatie);
}
Gewijzigd op 25/10/2017 13:54:08 door Willem L
Toevoeging op 25/10/2017 14:09:34:
Verder loopt de versie van je test-omgeving niet gelijk met je productie-omgeving. Als dit wel zo was, dan had je dit probleem al tijdens het testen kunnen zien.
if (preg_match("/^[a-zA-Z0-9]$/", $kiezen)) $activatie = $activatie.$kiezen;
Inderdaad, je heb gelijk. Weer wat bijgeleerd.
Gewijzigd op 25/10/2017 14:11:28 door Willem L
Code (php)
1
2
2
for($i = 0; $i < $length; $i++)
$activatie .= substr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',mt_rand(0,61),1);
$activatie .= substr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',mt_rand(0,61),1);
En dan kun je de "niet zo handige tekens" (bijvoorbeeld hoofdletter-I en kleine-letter-L; hoofdletter-O en cijfer-null, enz) d'r nog uit laten (dan 61 ook lager maken).
Gewijzigd op 25/10/2017 14:14:26 door Rob Doemaarwat
Kan je net zo goed strlen gebruiken op je letter-reeks. Dan hoef je zelf niet meer te tellen.
Ja ... moest ik er weer een var van maken, gedoe ;-)
Quote:
Alles in de testomgeving werkt.
Nu wil ik alles online zetten gaat het mis met de activatiecode functie.
Nu wil ik alles online zetten gaat het mis met de activatiecode functie.
Dit impliceert ook min of meer dat je ontwikkelomgeving niet echt representatief is voor je productie-omgeving.
Het testen op een onwikkel(- of test)omgeving heeft niet zoveel zin wanneer je productie-omgeving hier niet op lijkt.
Zorg dus dat deze meer op elkaar lijken of, in een ideaal geval, volledig gelijk geschakeld worden.
Hiermee bedoel ik overigens niet dat je op een productie-omgeving zou moeten ontwikkelen ;).