当前位置: 首页 > 知识库问答 >
问题:

修改用户信息

谭学名
2023-03-14

我不能修改我的用户信息。当我单击Save时,它会重新加载页面,但不会将其保存为新的用户信息。我不知道是SQL注入的问题,还是其他原因。下面是修改页面的图片:https://imgur.com/eu5nmh6

<?php
    session_start();
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
        <meta charset="utf-8">
        <title>Modify user</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
        <style type="text/css">
        </style>
<?php
    $get=$_GET['id'];
    $form = "edituser.php?id=$get";
?>
  </head>
  <body>
    <h2>Modify user</h2>
    <form action="modifyuser.php" method="post">
      <table>
        <tr>
          <td>
            Name / Vorname:
          </td><br>
          <td>
            <div class="form-group">
            <input type="text" name="input_name"
<?php
if(isset($_POST['input_name'])) {
    echo 'value="'.$_POST['input_name'].'"';
}
?>
            >
            </div>
          </td>
        </tr>
      </table><br>

<?php
include "config.php";
if((isset($_POST['input_add']))&&($_POST['input_name']!="")){
    if (isset($_GET['modify'])) {
        $addusername = $_POST['input_name'];
        $id = $_GET['modify'];
        $modify_query = 'update benutzer 
                            set username="'.$addusername.'" 
                            where id="'.$id.'"';
        if($link->query($modify_query)=== TRUE){
            echo "User was successfully updated";
        }else {
            echo "Error updating the user";
        }
    }

    $result = mysqli_query($link, $modify_query);
    echo $modify_query;
    header("Location: pannel.php");
}

echo "<button class='btn btn-success' name='input_add' onclick='return confirm(\"Do you want to modify the user?\")';>Save</button>";
echo "&nbsp;";
echo "<a href='pannel.php' class='btn btn-default'>Go Back</a>";
?>
    </form>
  </body>
</html>

共有1个答案

胡飞鹏
2023-03-14

您的代码容易受到SQL注入的攻击。如下文所述使用PDO。但是,现在,根据您自己的驱动程序修改SQL查询。休息也一样。

现在,尝试理解下面的代码。另外,我会建议你保持你的代码漂亮,干净和简短。

<?php
if($_POST){
  $inputName = $_POST['input_name'];
  $userId = $_POST['userid'];

  $stmt = $pdo->prepare("UPDATE benutzer SET username = :uname WHERE id = :id");
  $stmt-> bindValue(':uname', $inputName);
  $stmt-> bindValue(':id', $userId);
  $stmt-> execute();

  if($stmt){
    echo "User was successfully updated";
    header("Location: pannel.php");
    exit();
  }else{
    echo "Error updating the user";
  }
}

?>

并且在表单中使用 来返回confirm,而不是PHP。这样您就可以在重新加载页面之前进行确认。

<form method="post" action="" onSubmit="return confirm('Are you sure you want to upddate this user?')">
  <input type="hidden" name="userid" value="<?php echo $hiddenUserIdHere; ?>">
  <input type="text" name="input_name">
</form>

这是一个更好的办法。

 类似资料:
  • 修改结算银行卡 $response = $app->material->setSettlementCard([ // 'sub_mch_id' => '1230000109', 'account_number' => '银行卡号', 'bank_name' => '开户银行全称(含支行)', 'account_bank' => '开户银行', 'bank_a

  • 前面章节介绍了如何利用 useradd 命令添加用户,但如果不小心添错用户信息,后期如何修改呢? 办法有两个,一个是使用 Vim 文本编辑器手动修改涉及用户信息的相关文件(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow),另一个方法就是使用本节介绍了 usermod 命令,该命令专门用于修改用户信息。 这里一定要分清 useradd 命令和 user

  • 在 MySQL 中,我们可以使用 RENAME USER 语句修改一个或多个已经存在的用户账号。 语法格式如下: RENAME USER <旧用户> TO <新用户> 其中: <旧用户>:系统中已经存在的 MySQL 用户账号。 <新用户>:新的 MySQL 用户账号。 使用 RENAME USER 语句时应注意以下几点: RENAME USER 语句用于对原有的 MySQL 用户进行重命名。 若

  • 前面我们说过了 创建一个用户,本节我们学习如何修改一个用户 首先,我们弄清楚,我们的需求是什么 1、更新用户信息 2、更新用户信息,并且更新用户组 这些在 sentry 中也是非常简单的,我们先说更新用户信息 仅更新用户信息 try { // 根据id 查询用户 $user = Sentry::findUserById(1); // 更新用户的属性 $user-

  • 接口说明 修改素材信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /wish3dearth/api/material/v1.0.0/modifyMaterialInfo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN materialI

  • 接口说明 修改素材信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /wish3dearth/api/material/v1.0.0/

  • 一、简介  用于显示和修改用户个人信息。 二、功能演示 写入你的要修改的数据:真实姓名,E-mail,语言。 提交后,如提示成功则可完成修改操作,否则则提示错误消息。如下图所示:

  • 请求header PUT /v1/videos/{视频id} Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{视频id}"替换您需要获取的视频id 参数: { name:"文件新名字" } 成功返回: { res