$user_country
:country=
时,我希望$user_country
成为数据库中的国家/地区; 当我在网址country=United States
$user_country
时,我希望country
从原来的国家/地区从数据库更改为美国,坚持更改为其值,直到下一个网址值更改 session_start();
$emailc=$_SESSION["email"];
$req1=mysql_query("SELECT country FROM users WHERE email='$emailc'");
$countryz= mysql_fetch_assoc($req1);
//Get country from URL:
$country = isset($_GET['country']) ? $_GET['country'] : null;
//Check the URL to see if we change $user_country
if(isset($country)){
$_SESSION['country']=$_GET['country'];
}
else{
$_SESSION['country']=$countryz['country'];
}
//Assign value to `$user_country`
$user_country=$_SESSION['country'];
;
$user_country
www.example.com?country=United States
在这种情况下$user_country
=美国
刷新$user_country
后,从数据库返回它的值
即使刷新后我希望$user_country
等同于美国,直到网址中国家/地区的值再次更改为止;
在 www.example.com?country=Canada 之前,我希望$user_country
=美国,所以我可以在未来的条件中使用它的值 .controller('MainCtrl', ['$scope', 'md5', function($scope, md5) {
$scope.$watch('email' ,function() {
$scope.message = 'Your email Hash is: ' + md5.createHash($scope.email || '');
});
}]);
答案 0 :(得分:2)
我认为当用户导航时,您将DB中的值设置为会话。因此,更新代码(添加elseif)应该可以正常工作
if(isset($country)){
$_SESSION['country']=$_GET['country'];
} elseif (empty($_SESSION['country'])) {
$_SESSION['country']=$countryz['country'];
}
答案 1 :(得分:2)
当您的用户登录或开始浏览您的网站时,您必须在$_SESSION
中为该国家/地区提供基本价值。
if (empty($_SESSION['country'])) {
$_SESSION['country'] = initializeCountry();
}
在初始设置之后,只有在设置$ _GET参数时才需要更改值,因此您的代码如下所示:
if(isset($country)){
$_SESSION['country']=$_GET['country'];
}
没有else语句。
答案 2 :(得分:1)
我认为你的问题出现在这一行
$country = isset($_GET['country']) ? $_GET['country'] : null;
如果刷新页面,您的代码会将国家/地区覆盖为null 这就是为什么你必须检查$ _GET是否不存在然后从会话中获取国家
if ( isset($_GET['country']) ) {
$country = $_GET['country'];
} else {
$country = isset($_SESSION['country']) ? $_SESSION['country'] : null;
}
您的完整代码:
session_start();
$emailc=$_SESSION["email"];
$req1=mysql_query("SELECT country FROM users WHERE email='$emailc'");
$countryz= mysql_fetch_assoc($req1);
//Get country from URL:
// Add this code
if ( isset($_GET['country']) ) {
$country = $_GET['country'];
} else {
$country = isset($_SESSION['country']) ? $_SESSION['country'] : null;
}
//$country = isset($_GET['country']) ? $_GET['country'] : null;
//Check the URL to see if we change $user_country
if(isset($country)){
$_SESSION['country']=$_GET['country'];
}
else{
$_SESSION['country']=$countryz['country'];
}
//Assign value to `$user_country`
$user_country=$_SESSION['country'];
答案 3 :(得分:0)
编写如下代码: -
session_start();
$emailc=$_SESSION["email"];
$req1=mysql_query("SELECT country FROM users WHERE email='$emailc'");
$countryz= mysql_fetch_assoc($req1);
//Get country from URL:
$country = (isset($_GET['country']) && !empty($_GET['country'])) ? $_GET['country'] : $countryz['country'];
//Set session variable
$_SESSION['country']=$country;
//Assign value to `$user_country`
$user_country=$_SESSION['country'];
希望它会对你有所帮助:)。
答案 4 :(得分:0)
有一些重要的错误。
你应该:
1)数据库应该选择else statemenet使用的时间。
2)我认为你想使用if语句
$country = isset($_GET['country']) ? $_GET['country'] : null;
但我认为你应该使用
$country = (isset($_GET['country'])) ? $_GET['country'] : null;
而是null,将其设置为value。你不需要做第二个。