ユーザー情報の変更

ユーザー情報の変更

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

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

  1. 変更するユーザーを選択します

    QQ截图20161010103141.png

    2. 関連するコンテンツを変更します

    QQ截图20161010103239.png

3. 変更ステートメントを実行し、プロンプトを生成します

QQ截图20161010103321.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 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); ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜