/////////////////////////////////////////////Task9 /////////////////////////////////////////
ECHO '
Task 9:
';
//The GetProvince function uses ranges to return the province, area for the
//postal code that the user have entered.
function GetProvince($Pcode){
$retVal = "";
if(0 < intval($Pcode) && intval($Pcode) < 205){$retVal = "Gauteng, Pretoria 1";}
if(204 < intval($Pcode) && intval($Pcode) < 699){$retVal = "Mpumalanga, Pretoria 2";}
if(698 < intval($Pcode) && intval($Pcode) < 1000){$retVal = "Limpopo, Polokwane/Pietersburg";}
if(999 < intval($Pcode) && intval($Pcode) < 1200){$retVal = "Mpumalanga, Pretoria 3";}
if(1199 < intval($Pcode) && intval($Pcode) < 1400){$retVal = "Mpumalanga, Nelspruit";}
if(1399 < intval($Pcode) && intval($Pcode) < 1438){$retVal = "Gauteng, Germiston";}
if(1437 < intval($Pcode) && intval($Pcode) < 1445){$retVal = "Gauteng, Heidelberg";}
if(1444 < intval($Pcode) && intval($Pcode) < 1700){$retVal = "Gauteng, Germiston";}
if(1699 < intval($Pcode) && intval($Pcode) < 1800){$retVal = "Gauteng, Krugersdorp";}
if(1799 < intval($Pcode) && intval($Pcode) < 1871){$retVal = "Gauteng, KDP/Soweto";}
if(1870 < intval($Pcode) && intval($Pcode) < 2000){$retVal = "Gauteng, Vanderbijlpark";}
if(1999 < intval($Pcode) && intval($Pcode) < 2200){$retVal = "Gauteng, Witspos/Johannesburg";}
if(2199 < intval($Pcode) && intval($Pcode) < 2495){$retVal = "Mpumalanga, Pretoria 4";}
if(2494 < intval($Pcode) && intval($Pcode) < 2520){$retVal = "North West, Krugersdorp";}
if(2519 < intval($Pcode) && intval($Pcode) < 2710){$retVal = "North West, Potchefstroom";}
if(2709 < intval($Pcode) && intval($Pcode) < 2900){$retVal = "North West, Mafikeng";}
if(2899 < intval($Pcode) && intval($Pcode) < 3200){$retVal = "KwaZulu Natal, Ladysmith";}
if(3199 < intval($Pcode) && intval($Pcode) < 3310){$retVal = "KwaZulu Natal, Pietermaritzburg";}
if(3309 < intval($Pcode) && intval($Pcode) < 3600){$retVal = "KwaZulu Natal, Ladysmith";}
if(3599 < intval($Pcode) && intval($Pcode) < 3800){$retVal = "KwaZulu Natal, Durmail 2";}
if(3799 < intval($Pcode) && intval($Pcode) < 3991){$retVal = "KwaZulu Natal, Richards Bay";}
if(3990 < intval($Pcode) && intval($Pcode) < 4180){$retVal = "KwaZulu Natal, Durmail 1";}
if(4179 < intval($Pcode) && intval($Pcode) < 4300){$retVal = "KwaZulu Natal, Port Shepstone";}
if(4299 < intval($Pcode) && intval($Pcode) < 4642){$retVal = "KwaZulu Natal, Durmail 2";}
if(4641 < intval($Pcode) && intval($Pcode) < 4731){$retVal = "KwaZulu Natal, Port Shepstone";}
if(4730 < intval($Pcode) && intval($Pcode) < 4740){$retVal = "Eastern Cape, Umtata";}
if(4739 < intval($Pcode) && intval($Pcode) < 4800){$retVal = "KwaZulu Natal, Port Shepstone";}
if(4799 < intval($Pcode) && intval($Pcode) < 4920){$retVal = "Eastern Cape, Umtata";}
if(4919 < intval($Pcode) && intval($Pcode) < 5050){$retVal = "Eastern Cape, East London";}
if(5049 < intval($Pcode) && intval($Pcode) < 5200){$retVal = "Eastern Cape, Umtata";}
if(5199 < intval($Pcode) && intval($Pcode) < 5751){$retVal = "Eastern Cape, East London";}
if(5750 < intval($Pcode) && intval($Pcode) < 6500){$retVal = "Eastern Cape, Port Elizabeth";}
if(6499 < intval($Pcode) && intval($Pcode) < 6700){$retVal = "Western Cape, George";}
if(6699 < intval($Pcode) && intval($Pcode) < 6900){$retVal = "Western Cape, Worcester";}
if(6899 < intval($Pcode) && intval($Pcode) < 7100){$retVal = "Western Cape, Beaufort West";}
if(7099 < intval($Pcode) && intval($Pcode) < 8180){$retVal = "Western Cape, Cape Mail";}
if(8179 < intval($Pcode) && intval($Pcode) < 8300){$retVal = "Northern Cape, Upington";}
if(8299 < intval($Pcode) && intval($Pcode) < 8800){$retVal = "Northern Cape, Kimberley";}
if(8799 < intval($Pcode) && intval($Pcode) < 9000){$retVal = "Northern Cape, Upington";}
if(9299 < intval($Pcode) && intval($Pcode) < 9410){$retVal = "Free State, Bloemfontein 1";}
if(9409 < intval($Pcode) && intval($Pcode) < 9700){$retVal = "Free State, Welkom";}
if(9699 < intval($Pcode)){$retVal = "Free State, Bloemfontein 2";}
return $retVal;
}
if (isset($_POST["Pcode"])){
if ($_POST["Pcode"] == ""){
//Blank is not allowed redirect to the same page.
header("Location: ./task9.php");
exit;
}
else{
$CheckCode = $_POST["Pcode"];
//This checks that the user entered a 4 character postal code.
if (strlen($CheckCode) != 4){
echo "$CheckCode is an invalid postal code it should be 4 digits long.
";
echo '';
}
else{
//Valid is 1 to 8999 and 9300 to 9999
//Preg_match is used with a regex to check that the postal code is valid.
if (preg_match('/0[0-9][0-9][1-9]|1[0-9][0-9][0-9]|2[0-9][0-9][0-9]|3[0-9][0-9][0-9]|4[0-9][0-9][0-9]|5[0-9][0-9][0-9]|6[0-9][0-9][0-9]|7[0-9][0-9][0-9]|8[0-9][0-9][0-9]|9[3-9][0-9][0-9]/',$CheckCode)){
echo "$CheckCode is an valid postal code for ". GetProvince($CheckCode) .".
";
echo '';
}else{
echo "$CheckCode is an invalid postal code it should be between 1 and 8999 and between 9300 to 9999.
";
echo '';
}
}
}
}
else{
echo '';
}