質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

217閲覧

PHP 投稿したツイートが表示されない

TaikiNakamura12

総合スコア4

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/11/09 08:58

PHP 投稿したツイートが表示されない。

PHPで単純なツイート機能を作っているのですが、ツイートが表示されず困っております。

発生している問題・エラーメッセージ

ツイートが表示されない

エラーメッセージ なし

該当のソースコード

PHP

1 2ソースコード 3```以下がindex.php 4<?php 5 6require('/home/vagrant/MySite/functions.php'); 7 8 9 10$fileName = '/home/vagrant/MySite/bbs_dat'; 11 12 13if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['user']) && isset($_POST['content'])) { 14 15 $user = trim($_POST['user']); 16 $content = trim($_POST['content']); 17 $time = date('Y-m-d H:i:s l'); 18 19 if ($content !== '') { 20 21 $user = ($user === '') ? 'ななしさん' : $user; 22 23 $message = $user . "\t" . $time . "\t" . $content . "\n"; 24 25 $fp = fopen($fileName, 'a'); 26 fwrite($fp, $message); 27 fclose($fp); 28 } 29 30 $posts = file($fileName, FILE_IGNORE_NEW_LINES); 31 32 $posts = array_reverse($posts); 33 34 header('Location: http://192.168.33.10:8000/result.php'); 35 exit; 36 37} 38 39?> 40 41 42<!DOCTYPE html> 43<html lang="ja"> 44<head> 45 <meta charset="UTF-8"> 46 <link rel="stylesheet" href="style.css"> 47 <title>掲示板</title> 48</head> 49<body> 50 <header> 51 <h2>簡易掲示板</h2> 52 </header> 53 54 <div class="board"> 55 <form action="" method="post"> 56 <div class="inputUser"> 57 User : <input type="text" name="user" placeholder="username"> 58 </div> 59 <div class="inputContent"> 60 Content : <input type="text" name="content" placeholder="content"> 61 </div> 62 <div class="submit"> 63 <input type="submit" value="投稿"> 64 </div> 65 </form> 66 </div> 67 68 <h2 class="postCount">投稿数(<?= count($posts) ?>件)</h2> 69 70 <div class="post"> 71 <ul> 72 <?php if (count($posts)) : ?> 73 <?php foreach ($posts as $post) : ?> 74 <?php list($user, $time, $content) = explode("\t", $post); ?> 75 <li><?= "Name : " . h($user) ?><br><?= "Date : " . h($time) ?><br><?= "Tweet : " . h($content) ?></li> 76 <?php endforeach; ?> 77 <?php else : ?> 78 <li>まだ投稿がありません</li> 79 <?php endif; ?> 80 <ul> 81 </div> 82</body> 83</html> 84 85以下result.php 86<?php 87 88require('/home/vagrant/MySite/functions.php'); 89 90?> 91 92<!DOCTYPE html> 93<html lang="ja"> 94<head> 95 <meta charset="UTF-8"> 96 <title>Add</title> 97</head> 98<body> 99 <p>Your tweet is added !!<p> 100 <p><a href="index.php">Go back</a><p> 101</body> 102</html> 103 104以下functions.php以下functions.php 105<?php 106 107function h($s) { 108 return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); 109} 110 111### 試したこと 112 113result.phpをなくすとなぜかちゃんと表示される 114 115### 補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

result.phpからindex.phpに戻ったときに$postsにデータを読み込んでいないためです。

$posts = file($fileName, FILE_IGNORE_NEW_LINES);
$posts = array_reverse($posts);

をif文の外側で実行してみてください。

投稿2020/11/09 23:58

tabuu

総合スコア2456

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaikiNakamura12

2020/11/10 07:47

ちゃんと機能しました!!忙しい中ご教示くださりありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問