如何在会话销毁时更新mysql db

时间:2016-02-20 03:23:46

标签: php mysql

您好我有关于使用枚举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!";
?>

3 个答案:

答案 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!"
    };

 }
?>