Ik ben voor mijn inlogscript bezig met een postcodecheck internationaal.
Daar heb ik een script voor gevonden.
Maar daar moet een lid zelf het land invullen.
Is het ook mogelijk om vanuit de postcode te weten te komen voor welk land de postcode is bedoeld?
Als ik controleer op de $ZIPREG dan wordt de Nederlandse postcode ook geaccepteerd in Oostenrijk.
Gewoon voor het gemak, en een leermomentje.

<?php
$country_code="NL";
$zip_postal="7812 gd";
 
$ZIPREG=array(
 "US"=>"^\d{5}([\-]?\d{4})?$",
 "UK"=>"^(GIR|[A-Z]\d[A-Z\d]??|[A-Z]{2}\d[A-Z\d]??)[ ]??(\d[A-Z]{2})$",
 "DE"=>"\b((?:0[1-46-9]\d{3})|(?:[1-357-9]\d{4})|(?:[4][0-24-9]\d{3})|(?:[6][013-9]\d{3}))\b",
 "CA"=>"^([ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ])\ {0,1}(\d[ABCEGHJKLMNPRSTVWXYZ]\d)$",
 "FR"=>"^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$",
 "IT"=>"^(V-|I-)?[0-9]{5}$",
 "AU"=>"^(0[289][0-9]{2})|([1345689][0-9]{3})|(2[0-8][0-9]{2})|(290[0-9])|(291[0-4])|(7[0-4][0-9]{2})|(7[8-9][0-9]{2})$",
 "NL"=>"^[1-9][0-9]{3}\s?([a-zA-Z]{2})?$",
 "ES"=>"^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$",
 "DK"=>"^([D-d][K-k])?( |-)?[1-9]{1}[0-9]{3}$",
 "SE"=>"^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$",
 "BE"=>"^[1-9]{1}[0-9]{3}$"
);
 
if ($ZIPREG[$country_code]) {
 
 if (!preg_match("/".$ZIPREG[$country_code]."/i",$zip_postal)){
 //Validation failed, provided zip/postal code is not valid.
echo 'verkeerd'; 
} else {
 //Validation passed, provided zip/postal code is valid.
echo 'ok';
 }
 
} else {
 echo "niet beschikbaar";
 //Validation not available
 
}
?>
Nee, en precies om de reden die je al schetst. Postcodeformaten zijn niet 100% uniek per land. Het zou ook niet logisch zijn, want hoe kun je nu niet weten in welk land je woont?

Ander puntje: je moet wel even nagaan of je deze gegevens wel mag vragen. Voor bijvoorbeeld een webshop is dit nodig om de overeenkomst na te komen. Voor een loginsysteem is dit niet nodig, en postcodes etc zijn persoonsgegevens, en daar bestaat wat behoorlijke wetgeving omheen.
Al zou het kunnen moet je je nog sterk afvragen of je het moet willen. Dit soort overmatige validatie maken het dat sommige gebruikers gewoon niet meer hun juiste gegevens KUNNEN invullen. Zeker wanneer dit soort informatie nooit bijgewerkt wordt of door een externe partij onderhouden wordt.
Is dit niet bedoeld voor een registratiesysteem i.p.v. inlogsysteem? Want inloggen met een postcode lijkt mij niet echt heel veilig ;-).

Even los van het verhaal over de wetgeving...
Als je dit in je registratie-pagina wilt implementeren, dan raad ik aan met met AJAX te werken. Dan kan je na de invoer van het land de postcode invoeren en controleren, en aan de hand van je script en je land kijken of de postcode geldig is.

Ik zou de controle niet zo heel strak trekken op bepaalde reeksen van de postcodes. Als je de postcode-mutaties per week moet gaan bijhouden van vele verschillende landen, dan is dat al een dagtaak. ;-)
ik heb de postcode nodig op meerdere plekken.. omdat ik gebruik maak van googlemaps en leden hun beroep op kunnen geven, waarop men dan via googlemaps een gebied kan bekijken waar artiesten wonen, producers, tekstschrijvers, enz. Ook waar feesten zijn in een bepaalde periode. Ik zou het hooguit als 'niet verplicht' kunnen zetten...Maar maakt de zichtbaarheid voor promotie en vindbaarheid wel veel minder.... maar ik heb er meer vrijwillige opties in. Kan wel...

[size=xsmall]Toevoeging op 31/07/2017 17:14:22:[/size]

Is bedoeld als registratie inderdaad Arien.. bedankt voor de correctie als dat niet duidelijk was.
Maar het maakt wel deel uit van de 'vindbaarheid'. Net als aangeven van een youtube, facebook, nieuwsbrief, enz.
Dus bij het aanmaken van een account kan men die zaken wel aangeven.
Kan men later ook doen, evenals wijzigen..

[size=xsmall]Toevoeging op 31/07/2017 17:34:25:[/size]

Het is me weer allemaal wat duidelijker geworden.. Ook net wat gelezen over de wetgeving rond o.a. gebruik van postcodes.
Ik zet het er bij als optie...
Bedankt weer voor het meedenken...

Reageren