ユーザー情報を変更するためのPHPデータベース操作

実際のバックグラウンド管理では、管理者は多くのユーザー情報を変更できます。権限が公開されている場合、管理者はユーザーのユーザー名やその他の情報を変更することもできます。

実際の操作では、次のことがよくあります:

変更するユーザーを選択


2015-10-13_561ca482d3382.png

関連コンテンツを変更

2015-10-13_561ca482e9efd.png

ユーザーリストページを作成するときに、すでに完全に表示されていますユーザーの編集とユーザーの削除の機能をリストに表示する方法。

リストから変更したいユーザーをクリックして選択すると、変更が必要なコンテンツを表示する専用ページが表示されます。上の2枚目の写真でもお見せしました。

しかし、コードを実装するときにユーザー情報をどのように入力するのでしょうか?

edit.php はユーザー情報を表示します

実装プロセス:
1. get にユーザーの ID を渡してユーザー情報を取得します。 SQL ステートメントを使用してユーザー情報をクエリします。

<?php

if (is_numeric($_GET['id'])) {

   $id = (int) $_GET['id'];

}

$sql = "select id,username from user where id = " . $id;

$result = mysqli_query($conn, $sql);

$data = mysqli_fetch_assoc($result);

?>

2. ユーザーの情報をフォームに割り当てます。ユーザーが送信をクリックすると、update.php のフォーム テーブルでユーザーが変更した値が送信されます。更新時に変更された場所条件でどのユーザーを変更するかを指定する必要があるためです。そこで、入力隠しフォームにユーザーの ID を入力します。 [送信] をクリックすると、非表示の ID も更新ページに渡されます。

通常、ユーザー名は変更できません。したがって、ユーザー名入力フォームの最後に読み取り専用パラメーターを追加し、ユーザー名は変更できないようにしました。

コードは次のとおりです:

<form action="update.php" method="post">
    用户名:<input type="text" name="username" value="<?php echo $data['username'];?>" readonly><br />
    密码:<input type="password" name="password"><br />
    <input type="hidden" value="<?php echo $data['id'];?>" name="id" />
    <input type="submit" value="提交">
</form>

update.php ユーザーデータを変更します


実際、変更できるのはユーザーのパスワードのみです。 2 つの状況があります:

1. ユーザーがパスワードを変更した

2. ユーザーがパスワードを変更していない

実際、テクノロジーを理解していない一般のオペレーターを騙すことができます。

1. ユーザーがパスワードを変更していない場合は、成功メッセージを送信します。

2. ユーザーのパスワードを変更した場合。実際にユーザーのパスワードを変更すると、変更が成功したことを示すメッセージも表示されます。

ユーザーIDとパスワードを取得する

実装プロセス中にユーザーIDを取得する必要があります。そうしないと、update ステートメントが生成されるときに、テーブル全体のすべてのデータが where 条件なしで変更されます。

パスワードは以前は md5 を使用して保存されていました。したがって、ユーザーがパスワードを変更した場合は、そのパスワードも md5 に保存する必要があります。

$id = (int)$_GET['id'];
$password = md5(trim($_POST['password']));

SQL ステートメントを生成

変更された SQL ステートメントにユーザー ID とパスワードを入力し、実行のために MySQL サーバーに送信します。つまり、パスワードの変更操作が完了する。

$sql = "update user set password='" . $password . "' where id = $id";
$result = mysqli_query($conn, $sql);
if ($result) {
    echo '修改成功';
}

全体的な表現のデモ

フォームにユーザー情報を表示するためのソースコード

<?php

if (is_numeric($_GET['id'])) {

   $id = (int) $_GET['id'];

}

$sql = "select id,username from user where id = " . $id;

$result = mysqli_query($conn, $sql);

$data = mysqli_fetch_assoc($result);

?>


<form action="update.php" method="post">

   用户名:<input type="text" name="username" value="<?php echo $data['username'];?>"><br />

   密码:<input type="password" name="password"><br />

   <input type="hidden" value="<?php echo $data['id'];?>" name="id" />

   <input type="submit" value="提交">

</form>
<?php

mysqli_close($conn);

?>

update.phpを修正したソースコード

<?php
include 'connection.php';

$id = (int) $_POST['id'];

if (trim($_POST['password'])) {

    $password = md5(trim($_POST['password']));

    $sql = "update user set password='" . $password . "' where id = $id";

} else {

    echo '修改成功';
}

$result = mysqli_query($conn, $sql);

if ($result) {
    echo '修改成功';
}


学び続ける
||
<?php include 'connection.php'; $id = (int) $_POST['id']; if (trim($_POST['password'])) { $password = md5(trim($_POST['password'])); $sql = "update user set password='" . $password . "' where id = $id"; } else { echo '修改成功'; } $result = mysqli_query($conn, $sql); if ($result) { echo '修改成功'; } ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜