2016-02-20 167 views
1

你好,我有問題關於更新MySQL數據庫字段與枚舉1和0,當用戶登錄它將其更改爲1,但當用戶註銷我試圖這樣做,但它不會工作... 我也試着讓它作爲按鈕,如果按下BTN做一些事情,然後去logout.php但它沒有工作......如何更新mysql數據庫會話銷燬

所以我的代碼是這樣的......

<?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!"; 
?> 
+1

是'table'你的實際表名:P? – Matt

+1

不,我不想寫我的表名:D – Sky

+0

當您註銷時,您正在設置會話的$註銷變量。檢查該變量是否保持適當的值。 –

回答

1

你的問題是不是與其他做兩個答案,@Gopal聲明你應該在取消設置會話後銷燬,但是在設置會話之前設置變量。 @Marmik也不能解決問題。

你的問題就在這裏:

$logger = $_SESSION["login"]; 
session_start(); 

你試圖訪問會話變量之前,你真正開始了會議。這會給你一個空白的$logger,你會發現如果你使用echo $logger

那麼,我們該如何解決這個問題。實質上,我們只是交換兩行,因此session_start()在我們嘗試訪問會話變量之前。

session_start(); 
$logger = $_SESSION["login"]; 

如果失敗,你可能要檢查後session_start();

好運氣$_SESSION["login"]實際上已經在第一位置設置了快速echo $_SESSION['login'];

+0

謝謝,它適用於我愚蠢的舉動,把會議後......:D – Sky

0

給session_unset(); session_destroy();更新查詢表後。

+0

是的,這也可以工作 –

+0

他在設置會話之前設置'$ logger'的值。 – Matt

0

你可以做的是,你可以檢查會話他是真的logedin或不

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

} 
?> 
+1

您必須在訪問'$ _SESSION'變量前開始會話。 – Matt

+0

哦,是的,那是真的,我改變了答案... –