0

我的问题正如标题所说:如何在网站上创建和“更新个人资料”页面?

目前,我在成功登录后将用户的用户 ID、用户名和电子邮件存储在 SESSION 变量中。问题是当用户通过单击按钮更新他们的个人资料时,会调用一个名为的外部文件process_updateprofile.php。需要 SESSION 存储的process_updateprofile.php用户 ID 才能更新我的数据库中用户表中的特定用户行。

但是,当我打印出 SESSION 用户 ID 变量时,它返回 NULL,并且 SQL 查询不会执行,因为WHERE userid=?我准备好的语句中的语句失败。

这是在我的页面顶部启动会话的代码:

        function sec_session_start() {
            $session_name = 'sec_session_id'; // Set a custom session name
            $secure = false; // Set to true if using https.
            $httponly = true; // This stops javascript being able to access the session id. 

            ini_set('session.use_only_cookies', 1); // Forces sessions to only use cookies. 
            $cookieParams = session_get_cookie_params(); // Gets current cookies params.
            session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); 
            session_name($session_name); // Sets the session name to the one set above.
            session_start(); // Start the php session
            session_regenerate_id(true); // regenerated the session, delete the old one.     
        }

这是在用户登录时将用户 ID 存储在 SESSION 变量中的代码:

$user_id = preg_replace("/[^0-9]+/", "", $user_id); // XSS protection as we might print this value
$_SESSION['user_id'] = $user_id; 
$username = preg_replace("/[^a-zA-Z0-9_\- ]+/", "", $username); // XSS protection as we might print this value
$_SESSION['username'] = $username;

谢谢!

4

0 回答 0