前提・実現したいこと
現在、PHPで予定などを登録するためのカレンダーアプリを実装している途中です。
新規登録する際には、登録した内容がしっかりデータベースに反映されており、ログインもできる状態ですが、
予定を登録しようとするとデータベースに反映されません。
コードも問題ないと思うのですが、どこがおかしいのかわからないためご教示いただけると幸いです。
該当のソースコード
PHP
1<?php 2session_start(); 3require('dbconnect.php'); 4header('Expires:-1'); 5header('Cache-Control:'); 6header('Pragma:'); 7 8if ($_COOKIE['email']!== ''){ 9$email = $_COOKIE['email']; 10} 11 12 13if(!empty($_POST)){ 14$email = $_POST['email']; 15if($_POST["email"]!==''&&$_POST["password"]!==''){ 16$login = $db->prepare('SELECT * FROM users WHERE email=? AND password=?'); 17$login->execute(array( 18$_POST["email"], 19sha1($_POST["password"]) 20)); 21$user =$login->fetch(); 22 23if($user){//こちらです 24$_SESSION['id'] = $user['id']; 25$_SESSION['time'] = time(); 26 27if ($_POST['save'] === 'on'){ 28setcookie('email',$_POST['email'],time()+60*60*24*14); 29} 30header('Location:index.php'); 31exit(); 32}else{ 33$error['login'] = 'failed'; 34} 35}else{ 36$error['login'] = 'blank'; 37} 38}
PHP
1<?php 2require('dbconnect.php'); 3session_start(); 4 5if (!empty($_POST)){ 6 if ($_POST['message'] !== ''){ 7 $content = $db->prepare('INSERT INTO posts SET user_id=?, content=?'); //ここがデータベースに反映されません 8 $content->execute(array( 9 $_SESSION['id'], 10 $_POST['message'] 11 )); 12 header('Location: index.php'); 13 exit(); 14 } 15} 16?> 17<!DOCTYPE html> 18<html lang="ja"> 19<head> 20 <meta charset="UTF-8"> 21 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 22 <title>message</title> 23</head> 24<body> 25<form action="" method="post"> 26 <textarea name='message' cols="50" rows="5"></textarea> 27 <input type="hidden" name="reply_post_id" value="" /> 28 <div> 29 <p> 30 <input type="submit" value="投稿する" /> 31 </p> 32 </div> 33</form> 34</body> 35</html>
PHP
1<?php 2try{ 3 $db = new PDO('mysql:host=localhost;dbname=calender;charset=utf8','root',''); 4}catch(PDOException $e){ 5 echo "DB接続エラー:" .$e->getMessage(); 6} 7 8?>
試したこと
$_SESSION['id']、$_POST['message']ともにvar_dumpで確認し、しっかりと値は入っています。
補足情報(FW/ツールのバージョンなど)
開発環境
OS:Mac
Webサーバー:xampp
DB:mysql
回答2件
あなたの回答
tips
プレビュー