当用户第一次进入我的网站时,他们被要求选择一个位置,这决定了他们的货币。选择后,国家/地区代码将存储在$_SESSION['countryCode']
中并显示在屏幕上。
然而,我也希望在URL中反映这一点,例如,如果用户选择德国,URL将重定向到http://test.com/de/
。此外,我还希望用户键入上面的URL,然后在页面加载时将会话设置为'de'
。
我不知道从哪里开始,我想我们必须在htaccess文件中重写url,但我不知道这将如何与php会话交互,所以我们将非常感谢任何帮助。
祝你一切顺利,Matt
您希望全局存储您的国家/地区会话,然后在头/引导文件中引用它。
我个人会运行一个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,你可以很容易地做到这一点,但很难说没有看到你的代码。
您可以在没有.htaccess的情况下完成此操作。创建一个包含在所有脚本中的lang文件。该lang文件将有一个由会话变量生成的变量,该变量将附加到所有链接中,并带有货币代码
最初登录时,cuntry由gps定位。然后根据cuntry编写类似as的php代码。首先定义cuntry货币值。。
使用case
或if condition
用于选择货币像
switch($cuntry_name)
{case(germany):
$_SESSION['countryCode'] = 'de';
break;
case(...):
$_SESSION['countryCode'] = '..';
break;
}