私は現在、仕事のためにPHPユーザ管理システムで作業しています。新しいユーザーを作成することができます。私はログインしているユーザーアカウント、名、姓、電子メール、パスワードを更新できます。私は、テーブルにユーザーの情報を生成するページを作成しました。 削除、編集リンクのユーザーID、ユーザー名、名、姓、メールアドレスを表示します。削除スクリプトが機能します。私はユーザー情報を更新できるので、編集リンクはフォームに移動します。私が抱えている問題は、ユーザーの情報を更新するときに、データベースで更新されていないということです。 そのユーザーとしてログオンしている場合に限り、ユーザーの情報を更新できます。私はセッションを利用しています。私はそれが自分の問題と関係していると思います。ここにコードがあります。このスクリプトはsubmitを押してユーザー情報を更新した後に実行されます。どんな助けもありがとう。ありがとう。更新クエリは更新されませんが、実行時にエラーは表示されません
<?php
require("connect.php");
if(empty($_SESSION['user'])) {
header("Location: ../hound/login.php");
die("Redirecting to ../hound/login.php");
}
$array_value = array(
':email' => $_POST['email'],
':first_name' => $_POST['first_name'],
':last_name' => $_POST['last_name'],
':id' => $_POST['id']
);
$query = "UPDATE users
SET
email = :email,
first_name = :first_name,
last_name = :last_name
WHERE
id = :id";
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($array_value);
}
catch(PDOException $ex) {
die("Failed to run query: " . $ex->getMessage());
}
header("Location: users.php");
die("Redirecting to users.php");
?>
これは、ユーザー情報を編集するためのフォームです。送信ボタンを押すと、上記のスクリプトが実行されます。次に、usersという名前のページに戻ります。私はあなたのコードから理解することができるものから、
<?php
require("../scripts/common.php");
if(empty($_SESSION['user']))
{
header("Location: ../hound/login.php");
die("Redirecting to ../hound/login.php");
}
$query_parm = array(
':id' => $_GET['id']
);
$query = "
SELECT
*
FROM users
WHERE
id = :id
";
try
{
$stmt = $db->prepare($query);
$stmt->execute($query_parm);
}
catch (PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$rows = $stmt->fetchAll();
?>
<form action="../scripts/edit_users.php" method="post">
<?php foreach($rows as $row): ?>
Username:<br />
<b><?php echo htmlentities($row['username'], ENT_QUOTES, 'UTF-8'); ?></b>
<br /><br />
First Name:<br />
<input type="text" name="first_name" value="<?php echo htmlentities($row['first_name'], ENT_QUOTES, 'UTF-8'); ?>" />
<br /><br />
Last Name:<br />
<input type="text" name="last_name" value="<?php echo htmlentities($row['last_name'], ENT_QUOTES, 'UTF-8'); ?>" />
<br /><br />
E-Mail Address:<br />
<input type="text" name="email" value="<?php echo htmlentities($row['email'], ENT_QUOTES, 'UTF-8'); ?>" />
<br /><br />
Password:<br />
<input type="password" name="password" value="" /><br />
<br /><br />
<input type="submit" value="Update User" />
<a href="../scripts/users.php">Back</a><br />
<?php endforeach; ?>
'':id '=> $ _POST [' id '] 'fromここからは、のユーザIDを取得できます。これはから来ている?私はあなたのフォームで見ることができないまたは私はあまりにも眠いですか? –
私はHendra Nucleoが正しいと思います。あなたのフォームは 'id'を供給しません。現在、id = NULLの場所を更新しようとしています。開発中にprint_r($ _ POST)を追加して、フォームが提供しているものを正確に表示したい場合があります –