当用户第一次进入我的网站时,会要求他们选择一个位置,这决定了他们的货币。选择后,国家/地区代码将存储在$_SESSION['countryCode']
中并显示在屏幕上。
但是我也想在URL中反映这一点,例如,如果用户选择德国,则该网址会重定向到http://test.com/de/
。另外,如果用户输入上述URL,我也会喜欢它,然后当页面加载它以将会话设置为'de'
时。
我不知道从哪里开始这个我认为我们必须在htaccess文件中做一个url重写但是我不知道这会如何与php会话交互,所以任何帮助都会被彻底赞赏
一切顺利, 马特
答案 0 :(得分:0)
您希望全局存储您的国家/地区会话,然后在标头/引导程序文件中引用它。
我个人会运行一个switch语句来确定URL的结构,默认为GB。
session_start();
// Assuming your country has come in from a validated form post.
$urlBit = $_POST['country'];
switch($urlBit) {
case 'de':
$country = $urlBit;
break;
case 'es':
$country = $urlBit;
break;
default:
$country = 'gb';
break;
}
$_SESSION['country'] = $country;
反之亦然,您可以编写一些代码将URL放入字符串中,并在字符串中查找“/ de /”,“/ gb /”。
同样,我会回复一个switch语句来处理它,一旦你知道你的结果。然后,使用$_SESSION['country']
存储所有内容。
session_start();
// Assumed URL structure.
$url = 'http://www.website.com/de/';
// The switcheroo.
$urlParts = explode('/', $url);
$urlBit = $urlParts[3]; // Returns 'de'
// The same switch as above. Stick it in a function or class/method, maybe.
switch($urlBit) {
case 'de':
$country = $urlBit;
break;
case 'es':
$country = $urlBit;
break;
default:
$country = 'gb';
break;
}
$_SESSION['country'] = $country;
这是我可以提供的最佳答案,无需先看代码,但这个简单的逻辑可以解决您的问题,假设您知道如何实现上述代码。
如果没有htaccess,你可以很容易地做到这一点但是如果没有看到你的代码就很难说。
答案 1 :(得分:0)
最初在登录时,然后由gps找到cuntry。然后根据你的cuntry你写的PHP代码就像as.initially u defind the cuntry currency values ..
使用case
或if condition
用于选择货币的cuntry 像是
switch($cuntry_name)
{case(germany):
$_SESSION['countryCode'] = 'de';
break;
case(...):
$_SESSION['countryCode'] = '..';
break;
}
答案 2 :(得分:0)
你可以在没有.htaccess的情况下做到这一点。 创建一个包含在所有脚本中的lang文件。该lang文件将从您的会话变量生成一个变量,该变量将附加到您的所有链接,并且将携带货币代码