支援訓練 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>