当用户登录到我的网站时,我会创建一个名为$_SESSION['session_city_id']
的会话,该会话从MySQL收集ID
我想知道是否可以从表单更改它包含的数据。我创建了如下所示的表单select_city
:
<form name='select_city' action='sessions.php' method='post' style='display:inline;'>
<select onchange='this.form.submit()'>
<option value='1'>The first value</option>
<option value='2'>The second value</option>
<option value='3'>The third value</option>
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>
我的sessions.php
看起来像这样(我刚开始用PHP编程,所以不要因为我是一个彻头彻尾的菜鸟而抨击我!
<?php
session_start();
$url = htmlspecialchars($_SERVER['HTTP_REFERER']); //Find out where the user came from
if (isset($_POST['select_city'])){
$_POST['select_city'] = $city_id;
if (isset($_SESSION['session_city_id'])){
unset($_SESSION['session_city_id']);
}
$_SESSION['session_city_id'] = $city_id;
}
header ("Location: $url"); //Redirect back to the page the user came from
?>
if (isset($_POST['select_city'])){
$city_id = $_POST['select_city'];
$_SESSION['session_city_id'] = $city_id;
}
不需要取消设置,并且您替换了分配。
您可以使用新值覆盖会话变量(无需取消设置)
if (isset($_POST['select_city'])){
$_SESSION['session_city_id']=(int)$_POST['select_city']; // add a better check!
}
并且不要忘记您所在领域的名称
<select name="select_city" onchange='this.form.submit()'>