phpで、ユーザーが投稿したのをデーターベースに入れ、それを表示させたいのですがデータベースに入らないので助けていただきたいです。
どうかお願いします。
inputphp
1<?php 2session_start(); 3require('../dbconnect.php'); 4 5if ($_POST['memo'] == '') { 6 $error['memo'] = 'blank'; 7} 8 9 if (isset($_SESSION['id']) && $_SESSION['time'] + 3600 > time()) { 10 $_SESSION['time'] = time(); 11 $users = $db->prepare('SELECT * FROM users WHERE id=?'); 12 $users->execute(array($_SESSION['id'])); 13 $user = $users->fetch(); 14 } else { 15 header('Location: login.php'); exit(); 16 } 17 18 19if (!empty($_POST)) { 20 if ($_POST['memo'] != '') { 21 $memo = $db->prepare('INSERT INTO memos SET user_id=?, memo=?, created_at=NOW()'); 22 $memo->execute(array( 23 $user['id'], 24 $_POST['memo'] 25 )); 26 header('Location: tweet.php'); exit(); 27 } 28} 29?> 30 31 32form action="tweet.php" method="post"> 33 <dl> 34 <dt> 35 <div class="msg"> 36 <?php echo htmlspecialchars($user['image'], ENT_QUOTES); ?> 37 <?php echo htmlspecialchars($user['name'], ENT_QUOTES); ?>さん、投稿をしてください!</dt> 38 <dd> 39 <textarea name="memo" cols="50" rows="5" placeholder="自由に入力してください" required></textarea> 40 <button type="submit">投稿する</button> 41 42 <?php if ($error['memo'] == 'blank'): ?> 43 <p class="error">空投稿はできません</p> 44 <?php endif; ?> 45 </dd> 46 </dl> 47 <div> 48 49 </div> 50 </form>
データベース (users) id name email password picture created modified (memos) id memo user_id reply_post_id created_at modified
テーブル定義はcreate文の形で提示してください。手入力は避け、コピペを。
ご回答ありがとうございます。
phpが全然理解できていないこともありまして、、$useでユーザ情報を持ってくるようにしようとしたのですが、記述が違っていますでしょうか?
createわからない方は下記
https://dev.mysql.com/doc/refman/5.6/ja/create-table.html
テーブル作ったときに実行されるSQLです。
どのように環境作られたか分からないですが、phpMyAdmin利用されてる場合はエクスポート機能で取得できます。
>$useでユーザ情報を持ってくるようにしようとしたのですが
持ってこれているかデバッグしてみましたか?
デバッガをツールとして導入するのが良ですがひとまずvar_dumpで。
ただ必要なのがidだけならわざわざselectせずともセッションの値を使えば良いと思いますが。
ご回答ありがとうございます。
エラー文を出してみるとデータベースと繋がっていない様でしたので確認してみます。
多くの情報をいただきありがとうございます!
回答1件
あなたの回答
tips
プレビュー