vervangen van eregi

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Willem L

Willem L

25/10/2017 13:53:33
Quote Anchor link
Alles in de testomgeving werkt.
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
 
PHP hulp

PHP hulp

08/11/2024 05:07:38
 
- Ariën  -
Beheerder

- Ariën -

25/10/2017 14:00:47
Quote Anchor link
Gebruik preg_match() en zet je pattern tussen / en /

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.
 
Willem L

Willem L

25/10/2017 14:10:17
Quote Anchor link
je bedoelt zo

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
 
Rob Doemaarwat

Rob Doemaarwat

25/10/2017 14:12:26
Quote Anchor link
Wel een beetje een ruige manier om een random karakter te trekken (trial and error).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
for($i = 0; $i < $length; $i++)
  $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
 
- Ariën  -
Beheerder

- Ariën -

25/10/2017 14:14:16
Quote Anchor link
Kan je net zo goed strlen gebruiken op je letter-reeks. Dan hoef je zelf niet meer te tellen.
 
Rob Doemaarwat

Rob Doemaarwat

25/10/2017 14:15:38
Quote Anchor link
Ja ... moest ik er weer een var van maken, gedoe ;-)
 
Thomas van den Heuvel

Thomas van den Heuvel

25/10/2017 16:14:36
Quote Anchor link
Quote:
Alles in de testomgeving werkt.
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 ;).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.