Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用AJAX从SQL数据库更新存储在$\u会话数据中的用户配置文件_Php_Mysql_Sql_Session - Fatal编程技术网

Php 使用AJAX从SQL数据库更新存储在$\u会话数据中的用户配置文件

Php 使用AJAX从SQL数据库更新存储在$\u会话数据中的用户配置文件,php,mysql,sql,session,Php,Mysql,Sql,Session,我目前正在创建一个网站,我是非常新的,我已经添加了单独的配置文件,存储在会话中。配置文件存储在SQL数据库中,在我进入编辑配置文件页面之前,一切都进行得非常顺利。就像在大多数网站上一样,我希望能够在一个页面上编辑您的个人资料信息,例如用户地址 例如,如果有人想编辑他们的电子邮件,这是我设置的表单。。显示的电子邮件是用户通过会话ID发送的电子邮件,但是如何更新实际的SQL数据库?我在网页设计方面的经验非常有限 <label>Primary E-Mail:</label> &

我目前正在创建一个网站,我是非常新的,我已经添加了单独的配置文件,存储在会话中。配置文件存储在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 = $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数据库中的值

一些想法: 我相信您的数据库中有一个唯一的用户id,因此每次用户登录时,您只需将该用户id存储在$\u会话[]中,并在用户注销时将其清除。然后,当您需要用户数据时,您应该通过以下方式查询数据库:

 SELECT user_email, other_column FROM users WHERE user_id = $_SESSION['user_id']
如果这样做,当您必须更新用户信息时,您将在$\u会话['user\u id']中存储当前用户id,因此您必须在MySQL中进行更新。比如:

UPDATE users SET user_email= ' The new email from php goes here '

我通过向PHP创建一个AJAX请求来处理这个问题,该请求更新数据库中的值

如果PHP知道您的会话,您可以同时更改会话变量,而无需重新读取数据库

AJAX完成后,您将验证数据库是否已更新


注意不要在AJAX中使用SQL,否则可能会被黑客攻击。

答案相对简单,但很长。一种方法是创建一个表单,发布$_会话['ID'],然后创建一个PHP脚本,使用SQL选择用户详细信息并将其显示在表单中。然后,用户可以编辑详细信息并单击保存。Save然后将新的详细信息发布到另一个PHP脚本,该脚本再次使用SQL更新该用户的详细信息。
UPDATE users SET user_email= ' The new email from php goes here '