我的问题正如标题所说:如何在网站上创建和“更新个人资料”页面?
目前,我在成功登录后将用户的用户 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;
谢谢!