Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 编辑其他用户的用户信息_Php_Mysql_Post_Get_Sql Update - Fatal编程技术网

Php 编辑其他用户的用户信息

Php 编辑其他用户的用户信息,php,mysql,post,get,sql-update,Php,Mysql,Post,Get,Sql Update,对不起,我是PHP MYSQL的初学者。 我想问一下这将如何工作。我可以知道如何修复此问题,或者我将添加什么代码吗 场景: 我们有用户类型ADMIN和普通用户, 我创建了edit.php,以在密码丢失等情况下作为管理员编辑用户帐户。但我遇到的问题是当我单击特定表中的编辑按钮时 见下图,我以管理员的身份登录到这里,employee.php。 因此我选择id为22的用户testFN 我在这里用来获取id的代码如下: <td><a href="edit.php?id=<?ph

对不起,我是PHP MYSQL的初学者。 我想问一下这将如何工作。我可以知道如何修复此问题,或者我将添加什么代码吗

场景: 我们有用户类型ADMIN和普通用户, 我创建了edit.php,以在密码丢失等情况下作为管理员编辑用户帐户。但我遇到的问题是当我单击特定表中的编辑按钮时

见下图,我以管理员的身份登录到这里,employee.php。 因此我选择id为22的用户testFN

我在这里用来获取id的代码如下:

<td><a href="edit.php?id=<?php echo $row['user_id']; ?>" >Edit</a></td>

当我单击编辑按钮时,它将打开带有此url的页面EDIT.php

因此,我认为结果不等于我想要的,输入框中的信息来自我正在使用/登录的用户,而不是我选择编辑的用户

我用来编辑.PHP的代码如下:

<?php
session_start();
include_once 'dbconnect.php';

if(!isset($_SESSION['user']))
 { header("Location: edit.php");  }

$res=mysql_query("SELECT * FROM accounts WHERE user_id=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);

if(isset($_GET['user'])) {

$id = $_GET['user'];

if(isset($_POST['submit'])) {

$pass = md5(mysql_real_escape_string($_POST['pass']));
$aFName = mysql_real_escape_string($_POST['aFName']);
$aLName = mysql_real_escape_string($_POST['aLName']);
$aMName = mysql_real_escape_string($_POST['aMName']);
$aContact = mysql_real_escape_string($_POST['aContact']);
$aAddress = mysql_real_escape_string($_POST['aAddress']);
$aGender = mysql_real_escape_string($_POST['aGender']);
$utype = mysql_real_escape_string($_POST['utype']);

$query3=mysql_query("UPDATE accounts SET pass='$pass', agentFName ='$aFName', agentLName = '$aLName', 
    agentMName = '$aMName', agentContact = '$aContact', agentAddress = '$aAddress', 
    agentGender = '$aGender', user_type = '$utype'  ");

if($query3) 
 {  header("Location: home.php"); }
    }//end of post sumbit
 }//end of GET
 ?>

   /** HTML IS HERE **/

 Agent ID: <input type="text" id="agentCode" name="agentCode" required="required" value="<?php echo $userRow['user_id']; ?>"  >

 First Name: <input type="text" id="agentCode" name="aFName" required="required" value="<?php echo $userRow['agentFname']; ?>"  >

 Middle Name: <input type="text" id="agentCode" name="aMName" required="required" value="<?php echo $userRow['agentMname']; ?>"  >

 Last Name: <input type="text" id="agentCode" name="aLName" required="required" value="<?php echo $userRow['agentLname']; ?>"  >

这是为该文本输入设置值的地方:

value="<?php echo $userRow['user_id']; ?>"
使用什么查询来获取数据?这:

$res=mysql_query("SELECT * FROM accounts WHERE user_id=".$_SESSION['user']);
所以。。。您专门从登录的会话用户而不是查询字符串上指定的用户获取数据。只需使用查询字符串值而不是会话值

重要提示:

  • 在SQL查询中直接使用用户提供的值称为SQL注入漏洞。这是一件非常糟糕的事情。您需要使用查询参数和准备好的语句

  • 在允许登录用户编辑指定用户之前,您确实需要检查该用户是否有权编辑指定用户。任何用户都可以手动添加/更改查询字符串值、POST值或基本上来自客户端的任何内容


  • $\u SESSION['user']
    的值是多少?@Fred ii-user\u id是用户的id,它是一个字符串?我没有问列名,我问的是会话数组值是多少。@Fred ii-否,它是INT(自动递增)。如果它不起作用,请使用错误报告和mysql\u error()
    检查错误,并/或询问David;他在下面给了你一个答案。现在基本上我无法控制;-)这个
    dbconnect.php
    是未知的。很抱歉,我还是php MySQL的初学者,关于授权访问的条件,我知道我会有这个条件。我想做的是,我以管理员的身份登录,我想编辑特定的用户。然后显示登录的用户信息,而不是输入值中的用户信息。$userRow与$query@Edmhar:对,这是因为您从数据库而不是指定的用户获取登录的用户信息。获取查询字符串用户ID的信息,而不是会话用户ID。(另外,您可能需要仔细检查
    UPDATE
    语句。如果没有
    WHERE
    子句,它将更新每个用户记录。)谢谢,我现在添加了WHERE user\u ID='user',对吗?但是仍然不知道如何编辑我想要的特定用户。@edmar:为了获取有关用户的信息以及将该信息保存回数据库,您需要有一个指定用户ID的
    WHERE
    子句。用户ID是您从
    $\u get[]
    集合中获得的。我不知道该怎么解释。如果有一个用户ID为的变量,只需使用该变量即可。(重要提示:在准备好的语句中将其用作查询参数,不要像现在那样将其添加到字符串中。)
    $res=mysql_query("SELECT * FROM accounts WHERE user_id=".$_SESSION['user']);