簡體   English   中英

通過從MySQL獲取id將$ _SESSION ['name']更改為$ _SESSION ['id]

[英]change $_SESSION['name'] to $_SESSION['id] by fetching id from MySQL

我有一個登錄表單,以會話電子郵件開頭。 現在,因為我希望能夠通過表單更新電子郵件地址,而不會中斷會話,我需要將會話更改為id。 問題是它不會向我發送會話的id值,它只給我值1,如下所示:www.mysite.com/profile.php?uid = 1而不是返回真實的id號。

有任何想法嗎?

<?php
if(isset($_SESSION['email'])){
    $_SESSION['uid'] = fetch_user_id($_SESSION['email']);
    header("Location: profile.php?uid=" . $_SESSION['uid']);
    die();
}
?> 

<?php 
function fetch_user_id($email){
    global $db;
    $query = $db->query("SELECT id FROM user WHERE email='{$_SESSION['email']}'");
    $row = $query->fetch(PDO::FETCH_ASSOC);
    return true;
} 
?>

$row是存儲結果ie(數組)找到的結果,你想要的是$row['id']

那是因為你從fetch_user_id函數返回值true 為了獲得正確的結果,您需要從$row數組返回用戶ID。

function fetch_user_id($email) {
    global $db;
    $query = $db->query("SELECT id FROM user WHERE email='{$_SESSION['email']}'");
    $row = $query->fetch(PDO::FETCH_ASSOC);
    return $row['uid']; // whatever your user id column is called
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM