XAMPPでPHPでMYSQLのデータを修正したいが修正ページのファイルに移動しない
解決したいこと
春休みで時間もあるので「気づけばプロ並みPHP改訂版」という本でショッピングサイトを作成しています。
XAMPPを使用してまずはSQLと連携してスタッフリストを作っています。
エラーが出るまでにやったこと
1.コンソールで「mst_staff」というSQLテーブルの作成
2.以下が表示されるhtmlファイルの作成
3.「OK」を押すとスタッフ名と追加の確認の画面
4.追加完了の画面
5.リストの修正をするためにスタッフ一覧が出る画面(staff_list.php)
6.「5」でスタッフを選んで「OK]を押すとスタッフの名前とパスワードを修正する画面(この画面を作っているのですがエラーが出ます)
発生している問題・エラー
Object not found!
The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.
If you think this is a server error, please contact the webmaster.
Error 404
localhost
Apache/2.4.46 (Unix) OpenSSL/1.1.1h PHP/8.0.0 mod_perl/2.0.11 Perl/v5.32.0
該当するソースコード
6番のコードになります。ファイル名は「staff_edit.php」
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ろくまる農園</title>
</head>
<body>
<?php
try
{
$staff_code=$_POST['staffcode'];
$dsn='mysql:dbname=shop;host=localhost;charset=utf8';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql='SELECT name FROM mst_staff WHERE code=?';
$stmt=$dbh->prepare($sql);
$data[]=$staff_code;
$stmt->execute($data);
$rec=$stmt->fetch(PDO::FECTCH_ASSOC);
$staff_name=$rec['name'];
$dbh=null;
}
catch (Exception $e)
{
print'ただいま障害により大変ご迷惑をおかけしております。';
exit();
}
?>
スタッフ修正<br />
<br />
スタッフコード<br />
<?php print $staff_code;?>
<br />
<br />
<form method="post" action="staff_edit_check.php">
<input type="hidden" name="code" value="<?php print $staff_code;?>">
スタッフ名<br />
<input type="text" name="name" style="width:200px" value="<?php print $staff_name;?>"><br />
パスワードを入力してください。 <br />
<input type="password" name="pass" style="width:100px"><br />
パスワードをもう一度入力してください。<br />
<input type="password" name="pass2" style="width:100px"><br />
<br />
<input type="button" onclick="history.back()" value="戻る">
<input type="submit" value="OK">
</form>
</body>
</html>
一応、5番のソースコードも載せておきます。ファイル名は「staff_list.php」
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> ろくまる農園</title>
</head>
<body>
<?php
try
{
$dsn='mysql:dbname=shop;host=localhost;charset=utf8';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql='SELECT code,name FROM mst_staff WHERE 1';
$stmt=$dbh->prepare($sql);
$stmt->execute();
$dbh=null;
print 'スタッフ一覧<br/><br/>';
print '<form method="post" action="staff_edit.php">';
while(true)
{
$rec=$stmt->fetch(PDO::FETCH_ASSOC);
if($rec==false)
{
break;
}
print '<input type="radio" name="staffcode" value="'.$rec['code'].'">';
print $rec['name'];
print '<br />';
}
print '<input type="submit" value="修正">';
print '</form>';
}
catch (Exception $e)
{
print 'ただいま障害により大変ご迷惑をお掛けしております。';
exit();
}
?>
</body>
</html>
自分で試したこと
本も何度か読み直してサンプルコードのコピペもしてみましたが解決できませんでした。
もし可能性のあることでもいいので教えていただけると大変、助かります。テキストブックなので私が実際に作っていないので説明も抽象的で分かりにくいと思いますがよろしくお願いします。
0