###前提・実現したいこと
確認画面であるform2.phpで
データベースに保存できるか試しにやってみたところ登録できたのですが、
完了画面のform3.phpの段階でデータベースに登録したいです。
sectionを使って行いたいのですが、が、上手くできません。
###発生している問題・エラーメッセージ
form3.php
1Notice: Undefined index: name in C:\xampp\htdocs\reservation\form3.php on line 68 2Notice: Undefined index: np in C:\xampp\htdocs\reservation\form3.php on line 69 3Notice: Undefined index: tel in C:\xampp\htdocs\reservation\form3.php on line 70 4Notice: Undefined index: mail in C:\xampp\htdocs\reservation\form3.php on line 71 5Notice: Undefined index: monthly in C:\xampp\htdocs\reservation\form3.php on line 72 6Notice: Undefined index: daily in C:\xampp\htdocs\reservation\form3.php on line 73 7Notice: Undefined index: are in C:\xampp\htdocs\reservation\form3.php on line 74 8Notice: Undefined index: kan in C:\xampp\htdocs\reservation\form3.php on line 75 9SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null
###該当のソースコード
form.phpは入らなかったので省略しました。htmlだけです。
php
1form2.php 2<?php 3// セッションの開始 4 session_start(); 5?> 6 7<doctype html> 8<html class="export" lang="jp"> 9<head> 10 <meta charset="utf-8"> 11 <meta name="viewport" content="width=device-width"> 12 <meta name="Keywords" content=""> 13 <meta name="description" content=""> 14 <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.3.0/css/font-awesome.min.css" /> 15 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/earlyaccess/roundedmplus1c.css" /> 16 <link rel="stylesheet" type="text/css" href="../fonts/vicons/vicons-font.css" /> 17 <link rel="stylesheet" type="text/css" href="../css/reset.css" media="screen"> 18 <link rel="stylesheet" type="text/css" href="../css/common.css" media="screen"> 19 <link rel="stylesheet" type="text/css" href="../css/reservation.css" media="screen"> 20 <script src="../js/jquery.min.js" type="text/javascript"></script> 21 <title>ご予約</title> 22 <style> 23 </style> 24</head> 25<body> 26 <header> 27 <div id="topLogo"><img src="../img/logo.svg"></div> 28 <nav> 29 <button> 30 <img src="../img/mobileBtn.png" width="60" height="60"> 31 </button> 32 <ul> 33 <a href="#"><li>トップ</li></a> 34 <a href="#"><li>こだわり</li></a> 35 <a href="#"><li>メニュー</li></a> 36 <a href="#"><li>スタッフブログ</li></a> 37 <a href="#"><li>アクセス</li></a> 38 <a href="#"><li>ご予約</li></a> 39 <li id="closeMenu">ご予約</li> 40 </ul> 41 </nav> 42 </header> 43 44<div id="wrapper"> 45 <h1>確認画面</h1> 46<form method="post" action="form3.php"> 47<p>必須項目を確認の上、</p> 48<p>以下の条件でお間違いなければ送信してください。</p> 49 50 51<table border="1"> 52<!-- 名前 --> 53<tr> 54<th><p>お名前:</p></th> 55<td> 56<?php 57$name=$_POST['name']; 58if($name===""){ 59print 'お名前が入力されていません。'; 60}else{ 61print $name.'さん'; 62} 63?> 64</td></tr> 65 66<!-- 人数 --> 67<tr><th><p>人数:</p></th><td><?php 68$np =$_POST['np']; 69print $np.'人'; 70?></td></tr> 71 72<!-- 電話番号 --> 73<tr><th><p>電話番号:</p></th><td> 74<?php 75$tel = $_POST['tel']; 76print $tel; 77if($tel === ""){ 78header('Location: ./form.php');//入力されていなかったら元の画面に戻る。 79print '電話番号が入力されていません'; 80}else{ 81print $tel; 82} 83?></td></tr> 84 85 86<!-- メールアドレス --> 87<tr><th><p>Eメールアドレス:</p></th><td><?php 88$mail = $_POST['mail']; 89if($mail === ""){ 90print ''; 91}else{ 92print $mail; 93} 94?></td></tr> 95 96<!-- 予約月日 --> 97<tr><th><p>予約日時:</p></th><td> 98<?php 99$monthly = $_POST['monthly']; 100switch($monthly){ 101case 'a': 102print '1'; 103break; 104case 'b': 105print '2'; 106break; 107case 'c': 108print '3'; 109break; 110case 'd': 111print '4'; 112break; 113case 'e': 114print '5'; 115break; 116case 'f': 117print '6'; 118break; 119case 'g': 120print '7'; 121break; 122case 'h': 123print '8'; 124break; 125case 'i': 126print '9'; 127break; 128case 'j': 129print '10'; 130break; 131case 'k': 132print '11'; 133break; 134case 'l': 135print '12'; 136break; 137} 138?>月 139 140<?php 141$daily = $_POST['daily']; 142switch($daily){ 143case 'a': 144print '1'; 145break; 146case 'b': 147print '2'; 148break; 149case 'c': 150print '3'; 151break; 152case 'd': 153print '4'; 154break; 155case 'e': 156print '5'; 157break; 158case 'f': 159print '6'; 160break; 161case 'g': 162print '7'; 163break; 164case 'h': 165print '8'; 166break; 167case 'i': 168print '9'; 169break; 170case 'j': 171print '10'; 172break; 173case 'k': 174print '11'; 175break; 176case 'l': 177print '12'; 178break; 179} 180?>日 181<?php 182$daily = $_POST['time']; 183switch($daily){ 184case 'a': 185print '1'; 186break; 187case 'b': 188print '2'; 189break; 190case 'c': 191print '3'; 192break; 193case 'd': 194print '4'; 195break; 196case 'e': 197print '5'; 198break; 199case 'f': 200print '6'; 201break; 202case 'g': 203print '7'; 204break; 205case 'h': 206print '8'; 207break; 208case 'i': 209print '9'; 210break; 211case 'j': 212print '10'; 213break; 214case 'k': 215print '11'; 216break; 217case 'l': 218print '12'; 219break; 220} 221?>時頃 222</td></tr> 223 224 225<!-- アレルギーの有無 --> 226<tr><th><p>アレルギーの有無:</p></th><td> 227<?php 228$checkbox = $_POST['checkbox']; 229 230foreach ((array)$checkbox as $value) { 231print $value . '<br>'; 232print '<input type="hidden" name="checkbox[]" value="' . $value . '">'; 233} 234?> 235</td></tr> 236 237 238 239<!-- あると答えた方へ --> 240<tr><th>あると答えた方へ</th> 241<td> 242<?php 243$are=$_POST['are']; 244if($are === ""){ 245print ''; 246}else{ 247print $are; 248} 249?> 250</td> 251</tr> 252 253 254<!-- その他 --> 255<tr><th><p>ご感想:</p></th><td> 256<?php 257$kan=$_POST['kan']; 258if($kan === ""){ 259print ''; 260}else{ 261print $kan; 262} 263?></td></tr> 264</table> 265 266<input type="submit" value="確定"> 267<input type="button" onclick="history.back()" value="戻る"> 268</form> 269 270<?php 271$_SESSION['name'] = $_POST['name']; 272print '中身は'.$name.'です'.'<br>'; 273print 'セッションの中身は'.$_SESSION['name'].'です'.'<br>'; 274?> 275 276 277 278 279 280</div><!-- #wrapper --> 281<footer> 282 Copyright@2007-2015 All Rights Reserved 283</footer> 284<script src="../js/style.js"></script> 285 286</body> 287</html> 288
php
1form3.php 2<?php 3session_start(); 4?> 5 6<doctype html> 7<html class="export" lang="jp"> 8<head> 9<meta charset="utf-8"> 10 <meta name="viewport" content="width=device-width"> 11 <meta name="Keywords" content=""> 12 <meta name="description" content=""> 13 <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.3.0/css/font-awesome.min.css" /> 14 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/earlyaccess/roundedmplus1c.css" /> 15 <link rel="stylesheet" type="text/css" href="../fonts/vicons/vicons-font.css" /> 16 <link rel="stylesheet" type="text/css" href="../css/reset.css" media="screen"> 17 <link rel="stylesheet" type="text/css" href="../css/common.css" media="screen"> 18 <link rel="stylesheet" type="text/css" href="../css/reservation.css" media="screen"> 19 <script src="../js/jquery.min.js" type="text/javascript"></script> 20 <title>ご予約</title> 21 <style> 22 </style> 23</head> 24<body> 25 <header> 26 <div id="topLogo"><img src="../img/logo.svg"></div> 27 <nav> 28 <button> 29 <img src="../img/mobileBtn.png" width="60" height="60"> 30 </button> 31 <ul> 32 <a href="#"><li>トップ</li></a> 33 <a href="#"><li>こだわり</li></a> 34 <a href="#"><li>メニュー</li></a> 35 <a href="#"><li>スタッフブログ</li></a> 36 <a href="#"><li>アクセス</li></a> 37 <a href="#"><li>ご予約</li></a> 38 <li id="closeMenu">ご予約</li> 39 </ul> 40 </nav> 41 </header> 42 43<div id="wrapper"> 44 45 46<!-- DBへデータを登録する。 --> 47<?php 48$db_user ="root"; 49$db_pass = ''; 50$db_host="localhost"; 51$db_name="sample01"; 52$db_type="mysql"; 53$dsn="$db_type:host=$db_host; dbname=$db_name;charset=utf8"; 54 55try{ 56$pdo = new PDO($dsn,$db_user,$db_pass); 57$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 58$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); 59print '接続成功しました'; 60} 61 62catch(PDOException $Exception){ 63die("接続エラー:{$Exception->getMessage()}"); 64} 65try{ 66$pdo->beginTransaction(); 67$sql="INSERT INTO formtable(name,np,tel,mail,monthly,daily,are,kan)VALUES(:name,:np,:tel,:mail,:monthly,:daily,:are,:kan)"; 68$stmh=$pdo->prepare($sql); 69$stmh->bindValue(':name',$_POST['name'],PDO::PARAM_STR); 70$stmh->bindValue(':np',$_POST['np'],PDO::PARAM_STR); 71$stmh->bindValue(':tel',$_POST['tel'],PDO::PARAM_INT); 72$stmh->bindValue(':mail',$_POST['mail'],PDO::PARAM_STR); 73$stmh->bindValue(':monthly',$_POST['monthly'],PDO::PARAM_STR); 74$stmh->bindValue(':daily',$_POST['daily'],PDO::PARAM_INT); 75$stmh->bindValue(':are',$_POST['are'],PDO::PARAM_STR); 76$stmh->bindValue(':kan',$_POST['kan'],PDO::PARAM_STR); 77$stmh->execute(); 78$pdo->commit(); 79print "データを".$stmh->rowCount()."件入れました。"; 80} 81catch(PDOException $Exception){ 82$pdo->rollBack(); 83print $Exception->getMessage(); 84} 85?> 86 87<h1>送信完了</h1> 88<p>完了いたしました。</p> 89<p>ありがとうございます。</p> 90</div><!-- #wrapper --> 91<footer> 92 Copyright@2007-2015 All Rights Reserved 93</footer> 94<script src="../js/style.js"></script> 95 96</body> 97</html> 98
###補足情報(言語/FW/ツール等のバージョンなど)
XAMPPを使っています。
###試したこと
調べてもよくわからず
何日も悩んでいるのでどうすればよいか教えていただきたいです。
いろいろおかしいところがあるかもしれませんがよろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/29 03:48 編集