phpの初心者です。
phpからmysqlのテーブルにデータ登録されないのですが、原因がさっぱりわかりません。
下記記述のphpファイルから、mysqlにデータを登録させようとしていますが、エラーメッセージは出ませんが、データはMYSQLに登録できません。
INSERT文の記述が間違っているのでしょうか?
ご教示の程、何卒宜しくお願い致します。
テーブルの構造
テーブル名
dat_member
フィールド名
code(AI、int)、date(timestamp)、email(varchar)、password(varchar)、name(varchar)、
nickname(varchar)
shop_form.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>会員登録</title> </head> <body>会員情報を登録してください。<br />
<form method="post" action="shop_form_check.php"> お名前<br /> <input type="text" name="onamae" style="width:200px"><br /> ニックネーム<br /> <input type="text" name="nickname" style="width:200px"><br /> メールアドレス<br /> <input type="text" name="email" style="width:200px"><br /> パスワードを入力してください。<br /> <input type="password" name="pass" style="width:100px"><br /> パスワードをもう1度入力してください。<br /> <input type="password" name="pass2" style="width:100px"><br /> <br /> <input type="button" onclick="history.back()" value="戻る"> <input type="submit" value="OK"><br /> </form> </body> </html>shop_form_check.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>会員情報登録・確認画面</title> </head> <body> <?php require_once('common.php'); //関数でサニタイズ $post=sanitize($_POST); //チェックしてOKなら、各データをshop_form_done.phpにhiddenで渡す。 $onamae=$post['onamae']; $nickname=$post['nickname']; $email=$post['email']; $pass=$post['pass']; $pass2=$post['pass2']; $okflg=true; if($onamae=='') { print 'お名前が入力されていません。<br /><br />'; $okflg=false; } else { print 'お名前<br />'; print $onamae; print '<br /><br />'; } if($nickname=='') { print 'ニックネームが入力されていません。<br /><br />'; $okflg=false; } else { print 'ニックネーム<br />'; print $nickname; print '<br /><br />'; } if(preg_match('/^[\w\-.]+\@[\w\-.]+.([a-z]+)$/',$email)==0) { print 'メールアドレスを正確に入力してください。<br /><br />'; $okflg=false; } else { print 'メールアドレス<br />'; print $email; print '<br /><br />'; } if($pass=='') { print 'パスワードが入力されていません。<br /><br />'; $okflg=false; } if($pass!=$pass2) { print 'パスワードが一致しません。<br /><br />'; $okflg=false; } if($okflg==true) { print '<form method="post" action="shop_form_done.php">'; print '<input type="hidden" name="onamae" value="'.$onamae.'">'; print '<input type="hidden" name="nickname" value="'.$nickname.'">'; print '<input type="hidden" name="email" value="'.$email.'">'; print '<input type="hidden" name="pass" value="'.$pass.'">'; print '<input type="button" onclick="history.back()" value="戻る">'; print '<input type="submit" value="OK"><br />'; print '</form>'; } else { print '<form>'; print '<input type="button" onclick="history.back()" value="戻る">'; print '</form>'; } ?> </body> </html>shop_form_done.php
<?php session_start(); session_regenerate_id(true); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>会員登録完了画面</title> </head> <body> <?php try { require_once('common.php'); $post=sanitize($_POST); $onamae=$post['onamae']; $nickname=$post['nickname']; $email=$post['email']; $pass=$post['pass']; print $onamae.'様<br />'; print 'このたびは会員登録頂きありがとうございました。<br />'; print $email.'にメールを送りましたのでご確認ください。<br />'; //データベースに接続 $dsn='mysql:dbname=dat_member;host=localhost;charset=utf8'; $user='root'; $password=''; $dbh=new PDO($dsn,$user,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //SQL文を使ってレコードを追加 $sql='INSERT INTO dat_member (email,password,name,nickname) VALUES (?,?,?,?)'; $stmt=$dbh->prepare($sql); //$data=array(); $data[]=$email; $data[]=md5($pass); $data[]=$onamae; $data[]=$nickname; $stmt->execute($data); //データベースから切断 $dbh=null; $title='ご登録ありがとうございます。'; $header='From:abc@mail.com'; $honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8'); mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_send_mail($email,$title,$honbun,$header); $title='ユーザー様からご登録がありました。'; $header='From:'.$email; $honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8'); mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_send_mail('abc@mail.com',$title,$honbun,$header); } catch (Exception $e){ print 'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); } ?> </body> </html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。