###PHPで会員登録の掲示板サイトを作ろうと思っています。
データベースを取り込み、データベースにINSERTするとコードを記述したのですが、試しにフォームを入力しても、データベースに挿入されていません。
しかしコードを見返してみても原因を突き止めることができません。
よろしければ解決策をご教授ください。
また、check.phpで入力事項の確認をするのですが、画像のみがうまく表示されず、それについても困っています。これについてもお教えいただけたら幸いです.
###試したこと
check.phpの9行目からがデータベースの挿入文であり、$_POSTに要素が入っていた場合のみ起動するようにしています。
empty($_POST)がtrueであった場合に文字列を表示するif文を描いてみたら、文字列が出力されたので$_POSTがそもそも空であるということを自分で予測しました。
index.php
php
1<?php session_start() ?> 2 3<?php if(!empty($_POST)){ 4 if($_POST['name']==""){ 5 $error['name']="blank";} 6 if($_POST['email']==""){ 7 $error['email']="blank";} 8 if(strlen($_POST["passward"])<4){ 9 $error['passward']="length"; 10 } 11 if($_POST['passward']==""){ 12 $error['passward']="blank"; 13 } 14 $fileName=$_FILES['images']['name']; 15 if(!empty($fileName)){ 16 $ext= substr($fileName,-3); 17 if($ext != 'jpg'&&$ext !='gif'){ 18 $error['image']='type'; 19 } 20 } 21 if(empty($error)){ 22 $image=date('YmdHis').$_FILES['image']['name']; 23 move_uploaded_file($_FILES['image']['tmp_name'],"../member_picture/".$image); 24 25 $_SESSION['join']=$_POST; 26 header("Location:check.php"); 27 exit();} 28} 29if(isset($_REQUEST['action'])&&$_REQUEST['action']=='write'){ 30 $_POST=$_SESSION['join']; 31 $error['rewrite']=757; 32} 33 34 ?> 35 36 37 38<!DOCTYPE html> 39<html> 40<head> 41<link rel="stylesheet" href="../css/style.css"> 42<meta charest="UTF-8"> 43<title>簡易版ツイッター会員登録ページ</title> 44</head> 45<body class="index"> 46<header> 47<h1>会員登録</h1> 48</header> 49<main> 50<p>次のフォームに必要事項をご記入ください</p> 51<form action="" method="POST" enctype="multiple/form-data"> 52 <dl> 53 <dt>ニックネーム<span class="required">必須</span></dt> 54 <dd><input type="text" name="name" size="35" value="<?php echo isset($_POST['name'])? htmlspecialchars($_POST['name'],ENT_QUOTES):"名前";?>"> 55 <?php if(isset($_POST['name'])&&$error['name']=="blank"):?> 56 <p class="error">*ニックネームを入力してください</p> 57 <?php endif ?></dd> 58 <dt>メールアドレス<span class="required">必須</span></dt> 59 <dd><input type="text" name="email" size="35" value="<?php echo isset($_POST['email'])? htmlspecialchars($_POST['email'],ENT_QUOTES):"メールアドレス";?>"> 60 <?php if(isset($_POST['email'])&&$error['email']=='blank'):?> 61 <p class="error">*メールアドレスを入力してください</p> 62 <?php endif ?> 63 </dd> 64 <dt>パスワード<span class="required">必須</span></dt> 65 <dd><input type="passward" name="passward" size="10" maxlength="20" value="<?php echo isset($_POST['passward'])?htmlspecialchars($_POST['passward'],ENT_QUOTES):"パスワード";?>"> 66 <?php if(isset($_POST['passward'])&&$error['passward']=='blank'):?> 67 <p class="error">*パスワードを入力してください</p> 68 <?php endif ?> 69 <?php if(isset($_POST['length'])&&$error['passward'=='length']):?> 70 <p class="error">パスワードは4文字以上で入力してください</p> 71 <?php endif ?> 72 </dd> 73 74 <dt>写真など</dt> 75 <dd><input type="file" name="image" size="35"></dd> 76 <?php if(isset($error['image'])&&$error['image']=='type'):?> 77 <p class="error">*写真などは「.jpg」、または「.gif」の画像を指定してください</p> 78 <?php endif ?> 79 <?php if(!empty($error)):?> 80 <p class="error">恐れ入りますがもう一度画像を指定してください</p> 81 <?php endif ?> 82 83 </dl> 84 <input type="submit" value="入力内容を確認する"> 85</form> 86 87</main> 88</body> 89</html>
check.php
php
1<?php session_start(); 2require('../dbconnect.php'); 3 4if(!isset($_SESSION['join'])){ 5 header('Location:index.php'); 6 exit(); 7} 8 9if(!empty($_POST)){ 10 $statement=$db->prepare('INSERT INTO members SET name=?,email=?,passward=?,picture=?,created=NOW()'); 11 echo $ret = $statement->execute($_SESSION['join']['name'],$_SESSION['join']['email'],shal($_SESSION['join']['passward']), $_SESSION['join']['image']); 12 unset($_SESSION['join']); 13 14 header('Location:thanks.php'); 15 exit(); 16} 17?> 18<!DOCTYPE html> 19<html> 20<head> 21<link rel="stylesheet" href="../css/style.css"> 22<meta charest="UTF-8"> 23<title>簡易版ツイッター会員登録ページ</title> 24</head> 25<body class="index"> 26<header> 27<h1>会員登録</h1> 28</header> 29<main> 30<p>入力事項の確認をしてください</p> 31<form action="" method="POST" enctype="multiple/form-data"> 32 <dl> 33 <dt>ニックネーム</dt> 34 <dd><?php echo htmlspecialchars($_SESSION['join']['name'])?></dd> 35 <dt>メールアドレス</dt> 36 <dd><?php echo htmlspecialchars($_SESSION['join']['email'])?></dd> 37 <dt>パスワード</dt> 38 <dd><?php echo htmlspecialchars($_SESSION['join']["passward"])?></dd> 39 <dt>写真など</dt> 40 <dd> 41 <img src="../member_picture/<?php echo htmlspecialchars($_SESSION['join']['image']);?>"> 42 </dd> 43 </dl> 44 <div><a href="index.php?action=rewrite">書き直す</a></div>|<input type="submit" value="登録する"> 45</form> 46</main> 47</body> 48</html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/27 04:15 編集
退会済みユーザー
2020/02/27 04:24
2020/02/27 04:28
退会済みユーザー
2020/02/27 06:28 編集