• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
 
Determine Web Visitors Country of Origin in the Drop Down List using PHP and MYSQLDatabaseHexasoft Development Sdn. Bhd. (645996-K)
1-2-15 Mayang Mall Complex,Jalan Mayang Pasir 1,11950 Bandar Bayan Baru,Penang, Malaysia.URL:
http://www.ip2location.com{sales@ip2location.com
}With the emergence of online technologies such as the Internet, people and businesses haveincreased their reliance and use of these mediums as an avenue for commerce as it can be moreconvenient. During the transaction online, there are times when it is important to preset the webvisitor's country of origin, ZIP code, ISP and domain name at the drop down list to prevent fraud andto ease the complexity of registration task. This article shows you how by using PHP and MYSQLTechnology, it can be done.Let us take a simple example of a user login from Canada and he needs to fill up a shopping cart. Theform may be quite complex as some businesses need more information to prevent fraud. In thiscase, there are needs to preset certain info in the drop down list such as country of origin, ZIP code,IP and domain name of where the users login. As a result, the drop down list in this example willpreset to Canada, with the correct zip code and IP address.In this tutorial, we use the IP2Location™ IP-Country database to lookup country of origin from thevisitor's IP address. The full version of IP-Country database is available for subscription at $49/yearfrom
. If you have the full version of IP2Location™ IP-Countrydatabase, the import process is easier by using the LOAD DATA feature available in MYSQL.
PC: mysql> LOAD DATA INFILE "/IPCountry.csv" INTO TABLE IPCountry FIELDS TERMINATED BY',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Linux/Unix:
 mysql> LOAD DATA INFILE "/IPCountry.csv" INTO TABLE IPCountry FIELDS TERMINATED BY',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
Sample Codes in PHP and MYSQL
------------------------------
<select name="country"><?php// Replace this MYSQL server variables with actual configuration$mysql_server = "mysql_server.com";$mysql_user_name = "UserName";$mysql_user_pass = "Password";
 
// Retrieve visitor IP address from server variable REMOTE_ADDR$ipaddress = getenv(REMOTE_ADDR);// Convert IP address to IP number for querying database$ipno = Dot2LongIP($ipaddress);// Connect to the database server$link = mysql_connect($mysql_server, $mysql_user_name, $mysql_user_pass) ordie("Could not connect to MySQL database");// Connect to the IP2Location databasemysql_select_db("IP2Location") or die("Could not select database");// SQL query string to match the recordset that the IP number fall between the validrange$query = "SELECT * FROM IPCountry WHERE $ipno < = ipTO AND $ipno>=ipFROM";// Execute SQL query$result = mysql_query($query) or die("IP2Location Query Failed");// Retrieve the recordset (only one)$row = mysql_fetch_object($result);// Keep the country information into two different variables$countrySHORT = $row->countrySHORT;$countryLONG = $row->countryLONG;// Free recordset and close database connectionmysql_free_result($result); mysql_close($link);// If the visitors are from JP, redirect them to JP siteif ($countrySHORT != "-"){echo "
$countryLONG \n";} // Function to convert IP address (xxx.xxx.xxx.xxx) to IP number (0 to 256^4-1)function Dot2LongIP ($IPaddr) {if ($IPaddr == ""){return 0;} else {$ips = split ("\.", "$IPaddr");return ($ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256);}}?><option value="AF">AFGHANISTAN</option><option value="AL">ALBANIA</option><option value="DZ">ALGERIA</option><option value="AS">AMERICAN SAMOA</option><option value="AD">ANDORRA</option><option value="AO">ANGOLA</option><option value="AI">ANGUILLA</option><option value="AQ">ANTARCTICA</option><option value="AG">ANTIGUA AND BARBUDA</option><option value="AR">ARGENTINA</option><option value="AM">ARMENIA</option><option value="AW">ARUBA</option>
 
<option value="AP">ASIA PACIFIC</option><option value="AU">AUSTRALIA</option><option value="AT">AUSTRIA</option><option value="AZ">AZERBAIJAN</option><option value="BS">BAHAMAS</option><option value="BH">BAHRAIN</option><option value="BD">BANGLADESH</option><option value="BB">BARBADOS</option><option value="BY">BELARUS</option><option value="BE">BELGIUM</option><option value="BZ">BELIZE</option><option value="BJ">BENIN</option><option value="BM">BERMUDA</option><option value="BT">BHUTAN</option><option value="BO">BOLIVIA</option><option value="BA">BOSNIA AND HERZEGOWINA</option><option value="BW">BOTSWANA</option><option value="BV">BOUVET ISLAND</option><option value="BR">BRAZIL</option><option value="IO">BRITISH INDIAN OCEAN TERRITORY</option><option value="BN">BRUNEI DARUSSALAM</option><option value="BG">BULGARIA</option><option value="BF">BURKINA FASO</option><option value="BI">BURUNDI</option><option value="KH">CAMBODIA</option><option value="CM">CAMEROON</option><option value="CA">CANADA</option><option value="CV">CAPE VERDE</option><option value="KY">CAYMAN ISLANDS</option><option value="CF">CENTRAL AFRICAN REPUBLIC</option><option value="TD">CHAD</option><option value="CL">CHILE</option><option value="CN">CHINA</option><option value="CX">CHRISTMAS ISLAND</option><option value="CC">COCOS (KEELING) ISLANDS</option><option value="CO">COLOMBIA</option><option value="KM">COMOROS</option><option value="CG">CONGO</option><option value="CD">CONGO, THE DEMOCRATIC REPUBLIC OF THE</option><option value="CK">COOK ISLANDS</option><option value="CR">COSTA RICA</option><option value="CI">COTE D'IVOIRE</option><option value="HR">CROATIA</option><option value="CU">CUBA</option><option value="CY">CYPRUS</option><option value="CZ">CZECH REPUBLIC</option><option value="CS">CZECHOSLOVAKIA (FORMER)</option><option value="DK">DENMARK</option><option value="DJ">DJIBOUTI</option><option value="DM">DOMINICA</option><option value="DO">DOMINICAN REPUBLIC</option><option value="TP">EAST TIMOR</option><option value="EC">ECUADOR</option><option value="EG">EGYPT</option><option value="SV">EL SALVADOR</option>
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...