我想以 USD 和 GBP 显示产品价格。我的默认货币是美元。如果用户来自UK ip range,则此脚本将在cookie中设置货币代码GBP。
如何根据Cookie值显示价格(java-Script方法)?
脚本:
<?php
$con=mysqli_connect("localhost","userip","asdfgh","userip");
$ip = $_SERVER['REMOTE_ADDR'];
$query = "SELECT id FROM ip WHERE '$ip' BETWEEN f AND t"; // check user ip from UK ip range
$result = mysqli_query($con,$query);
if(mysqli_num_rows($result) > 0)
{
setcookie('currency', 'GBP', time()+604800);
}
mysqli_close($con);
?>
答案 0 :(得分:1)
您可以阅读$ _COOKIE global var:
switch ($_COOKIE['currency']) {
case "GBP": [...]; break;
default: [...]
更多详情:http://www.php.net/manual/en/reserved.variables.cookies.php
答案 1 :(得分:0)
在PHP中,您可以通过$_COOKIE
访问Cookie。
switch($_COOKIE['currency']) {
case 'GBP':
$price = <...>;
break;
// USD
default:
$price = <...>;
}
在JavaScript中它有点不同: http://www.w3schools.com/js/js_cookies.asp
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++)
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}
注意:用户可以在浏览器中更改Cookie,因此请注意。用户可能会将货币更改为试图破坏脚本的任何内容。
答案 2 :(得分:0)
如果您想在javascript中执行此操作,可以使用以下函数来读取/写入cookie。
function read_cookie(name) {
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen){
var j=i+alen;
if (document.cookie.substring(i, j)==arg)
return arguments_cookie(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;
}
return null;
}
function write_cookie(name, val, expires) {
document.cookie=name+"="+escape(val)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()));
}
function arguments_cookie(offset){
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}