知恵をお貸しください。
下記フォームを作成しました。(aaa.php)
<form method="post" action="bbb.php"> <p>商品名<br><input type="text" size="15" name="product_name"></p> <p>商品画像<br><input type="text" size="30" name="product_pic"></p> <p>商品説明<br><textarea name="product_text" rows="4" cols="40"></textarea></p> <p><input type="submit" value="送信"></p> </form>
フォーム入力後、bbb.phpへpostされます。
<body> <?php $name = $_POST['product_name']; $product_pic = $_POST['product_pic']; $text = $_POST['product_text']; if($name == '' || $product_pic == '' || $text == ''){ print '<form method="post" action="aaa.php">'; print '<p>入力されていないところがあります。</p>'; print '<input type="button" value="戻る" onClick="history.back()">'; }else{ print '<form method="post" action="ccc_thanks.php">'; print '<p>'.$name.'</p>'; print '<p>'.$product_pic.'</p>'; print '<p>'.$text.'</p>'; print '<input type="submit" value="内容を送信する">'; print '<input type="button" value="修正する" onClick="history.back()">'; print '</form>'; } ?>
内容が問題なければ、ccc_thanks.phpへ遷移してdbへデータを登録
<?php //データベースへ接続 $dsn = 'mysql:dbname=hogedb;host=localhost'; $user = 'xxxxx'; $password = 'xxxxx'; $dbh = new PDO($dsn,$user,$password); $dbh->query('SET NAMES utf8'); ?> 〜〜〜〜 〜〜〜〜 <body> <?php $name = $_POST['product_name']; $product_pic = $_POST['product_pic']; $text = $_POST['product_text']; $sql = 'INSERT INTO hogelist(product_name,product_pic,product_text) VALUES ("'.$name.'","'.$product_pic.'","'.$text.'")'; $stmt = $dbh->prepare($sql); $stmt->execute(); //データベース切断 $dbh = null; print '登録しました。'; ?> </body>
3つのファイルを使用してフォーム入力、確認、dbへ登録の流れを作っています。
bbb.phpへはフォーム値はpostされるのですが、
ccc_thanks.phpへ移動された後、フォームの値が無くなっており、
データベース自体は空の値を登録している形になっております。
なぜ値が空になってしまっているのか不明です。
上記記述で間違っているところはありますでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/12 07:18 編集
2017/10/16 09:25
2017/10/17 01:05
退会済みユーザー
2017/10/17 01:10
2017/10/17 01:24
2017/10/17 01:29
2017/10/17 01:38
2017/10/17 01:44
退会済みユーザー
2017/10/17 01:58
2017/10/17 02:26
2017/10/17 03:02
2017/10/17 03:18