您好我有关于使用枚举1和0更新mysql db字段的问题,当用户登录时将其更改为1但是当用户注销时我尝试这样做但它不会工作... 另外我尝试将它设为按钮,如果按下btn做某事然后转到logout.php但它没有用......
所以我的代码就是这个......
<?php include_once('connect.php');
$logger = $_SESSION["login"];
session_start();
session_unset();
session_destroy();
$mysqli = "UPDATE table SET field='0' WHERE email='$logger'";
if(mysqli_query($con, $mysqli)){
header("Location: index.php");}else echo "Something went wrong!";
?>
答案 0 :(得分:1)
您的问题与其他两个答案没有关系,@ Gopal表示您在取消设置会话后应该销毁,但是在取消设置会话之前设置变量。 @Marmik也没有解决这个问题。
你的问题在于:
$logger = $_SESSION["login"];
session_start();
您在实际启动会话之前尝试访问会话变量。如果您使用$logger
,这将为您提供空白echo $logger
。
那么,我们如何解决这个问题。基本上,我们只是交换两行,所以session_start()
在我们尝试访问会话变量之前。
session_start();
$logger = $_SESSION["login"];
如果此操作失败,您可能需要在$_SESSION["login"]
之后快速echo $_SESSION['login'];
检查session_start();
实际上是否已设置...
@app.route('/', methods=['GET', 'POST'])
def index():
data = adb.fetch()
return render_template('index.html', data=data)
@app.route('/', methods=['POST'])
def handle_data():
name = request.form['option']
print name
答案 1 :(得分:0)
提供session_unset(); session_destroy();更新表的查询后。
答案 2 :(得分:0)
你可以做的是你可以检查他真的是否真的在哪个会话
On Logout.php
<?php
@session_start();
if(!empty($_SESSION['login'])){
include_once('connect.php');
$logger = $_SESSION["login"];
$mysqli = "UPDATE table SET field='0' WHERE email='$logger'";
if(mysqli_query($con, $mysqli)){
session_unset();
session_destroy();
header("Location: index.php");
}
else {
echo "Something went wrong!"
};
}
?>