ユーザー情報の変更
実際のバックグラウンド管理では、管理者は多くのユーザー情報を変更できます。権限が公開されている場合、管理者はユーザーのユーザー名やその他の情報を変更することもできます。
実際の操作では、次のことがよくあります:
変更するユーザーを選択します
2. 関連するコンテンツを変更します
3. 変更ステートメントを実行し、プロンプトを生成します
ユーザーリストページを作成する際に、リスト内のユーザーの編集とユーザーの削除の機能を表示する方法を完全に示しました。
リストから変更したいユーザーをクリックして選択すると、変更が必要なコンテンツを表示する専用ページが表示されます。上の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 '修改成功'; }