【发布时间】:2014-03-26 11:54:34
【问题描述】:
我目前正在创建一个网站(我对它非常陌生),并且我添加了单独的配置文件,这些配置文件存储在会话中。配置文件存储在 SQL 数据库中,一切进展顺利,直到我进入“编辑配置文件”页面。就像在大多数网站中一样,我希望拥有编辑您的个人资料信息的功能,例如一页上的用户地址。
例如,如果有人想编辑他们的电子邮件,这是我设置的表单。显示的电子邮件是通过会话 ID 的用户电子邮件,但我如何更新实际的 SQL 数据库?我在所有网页设计方面的经验都非常有限。
<label>Primary E-Mail:</label>
<span id="pemail" class="datainfo"><?php echo $_SESSION['user_email']; ?></span>
<a href="#" class="editlink">Edit Info</a>
<a class="savebtn">Save</a>
在数据库中,我要更新的字段也是 user_email,它位于与会话 user_name 对应的行中(无论谁登录)。用户电子邮件的会话信息通过以下方式获得:
$_SESSION['user_email'] = $result_row->user_email;
不确定这是否有帮助,但由于我一直在拼凑来自各地的代码并试图使其适合我的网站,我不妨也分享电子邮件的注册字段:
$user_email = $this->db_connection->real_escape_string(strip_tags($_POST['user_email'], ENT_QUOTES));
更多的注册:
$sql = "INSERT INTO users (user_name, user_password_hash, user_email, landlord, user_address, user_phone_number) VALUES ('" . $user_name . "', '" . $user_password_hash . "', '" . $user_email . "', '" . 1 . "', '" . $user_address . "', '" . $user_phone_number . "')";
$query_new_user_insert = $this->db_connection->query($sql);
// if user has been added successfully
if ($query_new_user_insert) {
$this->messages[] = '<p class="login_text">Your account has been created successfully. You can now log in.</p>';
我已经尝试制作此编辑个人资料页面很长时间了,它在纸上看起来很简单,但似乎没有任何效果。对于这个可能非常愚蠢的问题,我深表歉意。
tl;dr:如何根据我在网站上的会话登录来编辑 SQL 数据库中的值?
【问题讨论】:
-
这个问题的答案相对容易但很长。一种方法是有一个表单,它发布 $_SESSION['ID'],然后有一个 PHP 脚本,它使用 SQL 来选择用户详细信息并在表单中显示它们。然后用户可以编辑详细信息并单击保存。保存然后将新的详细信息发布到另一个 PHP 脚本,该脚本再次使用 SQL 更新该用户的详细信息。