先日、質問させていただいたことで同じ問題が起きました。
本日、再開したところまたinsertされない問題が起きたので投稿させていただきます。先日はphpmyadminにてreply_member_idのnullにチェックを入れて再開したら治ったと思っていましたがその後nullのチェックを外しても関係ありませんでした。
プログラムの15行目にecho LINE;は反応あり、17行目は反応なしと!empty($_POST)で引っかかっていないようです。ですが、61〜74行目のfromタグから来ています。何かchomeのセッションあたりの設定など問題でしょうか?ご協力お願いします。
php
1<?php 2session_start(); 3require "join/dbconnect.php"; 4 5if(isset($_SESSION['id']) && $_SESSION['time'] + 3600 >time()){ 6 $_SESSION['time']=time(); 7 $members=$db->prepare('SELECT * FROM members WHERE id=?'); 8 $members->execute(array($_SESSION['id'])); 9 $member=$members->fetch(); 10}else{ 11header('Location:login.php'); 12exit(); 13} 14 15echo __LINE__; 16if(!empty($_POST)){ 17echo __LINE__; 18 if($_POST['message'] !== ''){ 19 $message=$db->prepare('INSERT INTO posts SET member_id=?,message=?,reply_message_id=?,created=NOW()'); 20 $message->execute(array( 21 $member['id'], 22 $_POST['message'], 23 $_POST['reply_post_id'] 24 )); 25 header('Location:index.php'); 26 exit(); 27 } 28} 29 30echo __LINE__; 31$posts=$db->query('SELECT m.name, m.picture, p.* FROM members m,posts p WHERE m.id=p.member_id ORDER BY p.created DESC'); 32 33 34if(isset($_REQUEST['res'])){ 35 //返信 36 $response=$db->prepare('SELECT m.name, m.picture,p.* FROM members m, posts p WHERE m.id=p.member_id AND p.id=?'); 37 $response->execute(array($_REQUEST['res'])); 38 39 $table=$response->fetch(); 40 $message='@'.$table['name'].''.$table['message']; 41} 42?> 43 44<!DOCTYPE html> 45<html lang="ja"> 46<head> 47 <meta charset="UTF-8"> 48 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 49 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 50 <title>ひとこと掲示板</title> 51 52 <link rel="stylesheet" href="style.css" /> 53</head> 54 55<body> 56<div id="wrap"> 57 <div id="head"> 58 <h1>ひとこと掲示板</h1> 59 </div> 60 <div id="content"> 61 <div style="text-align: right"><a href="logout.php">ログアウト</a></div> 62 <form action="" method="post"> 63 <dl> 64 <dt><?php print(htmlspecialchars($member['name'],ENT_QUOTES)); ?>さん、メッセージをどうぞ</dt> 65 <dd> 66 <textarea name="message" cols="50" rows="5"><?php print(htmlspecialchars($message,ENT_QUOTES)); ?></textarea> 67 <input type="hidden" name="reply_post_id" value="<?php print(htmlspecialchars($_REQUEST['res'],ENT_QUOTES)); ?>" /> 68 </dd> 69 </dl> 70 <div> 71 <p> 72 <input type="submit" value="投稿する" /> 73 </p> 74 </div> 75 </form> 76<?php foreach($posts as $post): ?> 77 <div class="msg"> 78 <img src="member_picture/<?php print(htmlspecialchars($post['picture'],ENT_QUOTES)); ?>" width="48" height="48" alt="<?php print(htmlspecialchars($post['name'],ENT_QUOTES)); ?>" /> 79 <p><?php print(htmlspecialchars($post['message'],ENT_QUOTES)); ?><span class="name">(<?php print(htmlspecialchars($post['name'],ENT_QUOTES)); ?>)</span>[<a href="index.php?res=<?php print(htmlspecialchars($post['id'],ENT_QUOTES)); ?>">Re</a>]</p> 80 <p class="day"><a href="view.php?id=<?php print(htmlspecialchars($post['id'],ENT_QUOTES)); ?>"><?php print(htmlspecialchars($post['created'],ENT_QUOTES)); ?></a> 81 82 <?php if($post['reply_message_id']>0):?> 83 84<a href="view.php?id=<?php print(htmlspecialchars($post['reply_message_id'],ENT_QUOTES)); ?>"> 85返信元のメッセージ</a> 86<?php endif; ?> 87 <?php if($_SESSION['id']==$post['member_id']): ?> 88 [<a href="delete.php?id=<?php print(htmlspecialchars($post['id']));?>" 89 style="color: #F33;">削除</a>] 90<?php endif; ?> 91 </p> 92 </div> 93<?php endforeach; ?> 94<ul class="paging"> 95<li><a href="index.php?page=">前のページへ</a></li> 96<li><a href="index.php?page=">次のページへ</a></li> 97</ul> 98 </div> 99</div> 100</body> 101</html>
<?php try{ $db=new PDO('mysql:dbname=mini_bbs;host=localhost:8889;charset=utf8','root','root'); }catch(PDOException $e){ print('DBエラー'.$e->getMessage()); } ?>
回答1件
あなたの回答
tips
プレビュー