支援訓練 92日目

index.html

<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>商品を追加</title>
<link rel="stylesheet" href="style.css">
</head>

<body>
<div id="container">
<h1>商品を追加</h1>
<form action="check.php" method="post" enctype="multipart/form-data">
<p>商品名を入力してください。</p>
<input type="text" maxlength="30" name="name" placeholder="例 野菜・果物名" required autofocus><br>
<p>価格を入力してください。(半角数字)</p>
<input type="number" placeholder="例 50" name="price" required><br>
<p><label for="image">画像を選択してください。</label><br>
<input type="file" name="image" id="image" style="width:400px" required></p>
<p><input type="submit" value="確認画面へ"></p>
</form>
</div>
</body>
</html>

check.php

<?php
session_start();
  session_regenerate_id(true);
  
  if( isset( $_SESSION[ 'login' ] ) == false ) {
    print 'ログインされていません。<br>';
    print '<p><a href="../1112/staff_login.php">ログイン画面へ</a></p>';
    exit();
  }
  
if(empty($_POST)) {
	print '処理終了';
	exit();
}

$flg = true;
$_SESSION['name']=$_POST['name'];
$_SESSION['price'] =$_POST['price'];
$_SESSION['image'] = $_FILES[ 'image' ];
$_SESSION['image_name']=$_SESSION['image']['name'];

?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>商品を追加確認画面</title>
<link rel="stylesheet" href="style.css">
</head>

<body>
<div id="container">
<h1>商品を追加確認画面</h1>
<?php
$file_size=$_SESSION['image']['size'];
if($file_size > 0){
	if($file_size > 1000000) {
		print '画像が大きすぎます。';
		$flg = false;
	}else {
		move_uploaded_file($_SESSION['image']['tmp_name'], './img/' . $_SESSION['image']['name']);
		print '<img src="./img/' . $_SESSION['image']['name'] . '"><br>';
	}
}
?>
<ul>
<li>商品名:<?php print htmlspecialchars($_SESSION['name']); ?></li>
<li>価格:<?php print htmlspecialchars($_SESSION['price']); ?></li>
</ul>
上記の商品を追加します。<br>
<form action="add.php" method="post">
<input type="button" value="戻る" onClick="history.back()">
<?php
if($flg==true){
	print '<input type="submit" value="OK">';
}
?>
</form>
</div>
</body>
</html>

add.php

<?php
session_start();
$name = $_SESSION['name'];
$price = $_SESSION['price'];
$file_name = $_SESSION['image_name'];

try{
$dsn = 'mysql:dbname=product;host=localhost';
$user ='root';
$password='root';
$dbh = new PDO($dsn, $user, $password);
$dbh->query('SET NAMES UTF8');

$sql ='INSERT INTO  mst_product (name, price,image) VALUES(?, ?,?)';
$stmt = $dbh->prepare($sql);
$data[] = $name;
$data[] = $price;
$data[] = $file_name;
$stmt->execute($data);

$dbh = null;

unset($_SESSION['name']);
unset($_SESSION['price']);
unset($_SESSION['image']);
unset($_SESSION['image_name']);
} catch(Exeption $e) {
print 'ただいま障害により大変ご迷惑をおかけしております。';
exit();
}
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>商品追加を確認</title>
<link rel="stylesheet" href="style.css">
</head>

<body>
<div id="container">
<h1>商品追加を確認</h1>
<?php print $name . 'を追加しました。'; ?><br>
<a href="list.php">商品一覧</a>
</div>
</body>
</html>

list.php

<?php
try{
	$dsn = 'mysql:dbname=product;host=localhost';
	$user ='root';
	$password='root';
	$dbh = new PDO($dsn, $user, $password);
	$dbh->query('SET NAMES UTF8');

	$sql = 'SELECT * FROM mst_product WHERE 1';
	$stmt = $dbh -> prepare($sql);
	$stmt -> execute();

	$dbh = null;

} catch (Exeption $e) {
	print 'ただいま障害により大変ご迷惑をおかけしております。';
	exit();
}
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>商品一覧</title>
<link rel="stylesheet" href="style.css"
</head>

<body>
<div id="container">
<h1>商品一覧</h1>
<form action="edit.php" method="post">
<ul>
<?php
	while(1) {
		$rec = $stmt -> fetch(PDO::FETCH_ASSOC);
		if($rec == false) {
			break;
		}
		print '<li>' ;
		print '<label><input type="radio" name="code" value="'. $rec['code'] .'">';
		print $rec['name'] . '' . $rec['price'] .'円<lavel></li>';
	}
?>
</ul>
<input type="submit" value="修正">
</form>
<a href="index.html">商品追加へ</a>
</div>
</body>
</html>

edit.php

<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>商品情報修正</title>
<link rel="stylesheet" href="style.css">
</head>

<body>
<div id="container">
<?php
if ((!isset($_POST['code'])) || $_POST['code']=="") {
	print '<p>変更する商品が選択されていません。</p>';
	print '<form>';
	print '<input type="button" onClick="history.back()" value="戻る">';
	print '</form>';
	exit();
}

$code = $_POST['code'];
try {
	$dsn='mysql:dbname=product;host=localhost';
	$user = 'root';
	$password = 'root';
	$dbh = new PDO($dsn, $user, $password);
	$dbh -> query('SET NAMES UTF8');
	$sql='SELECT * FROM mst_product WHERE code=?';
	$stmt = $dbh->prepare($sql);
	$data[] = $code;
	$stmt -> execute($data);
	$rec = $stmt -> fetch(PDO::FETCH_ASSOC);
	$name =htmlspecialchars($rec['name']);
	$price = htmlspecialchars($rec['price']);
	$dbh = null;
} catch (Exception $e) {
	print 'ただいま障害により大変ご迷惑をおかけしております。';
	exit();
}

?>
<h1>商品情報修正</h1>
<form action="list.php" method="post">
商品名:<input type="text" name="name" value="<?php print $name; ?>" autofocus required><br>
価格:<input type="number" name="price" value="<?php print $price; ?>" required><br>
<input type="submit" value="修正OK">
</form>
</div>
</body>
</html>