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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PHP

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

Q&A

1回答

511閲覧

【PHP】掲示板の機能の入力の値を正しい形でブラウザ上に表示させたい

rina0366

総合スコア58

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PHP

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

0グッド

0クリップ

投稿2018/05/11 13:06

現在、PHPを用いて掲示板機能の実装を行っております。
イメージとして名前と本文を入力し、投稿を行ったときに名前と本文を一つのセットとし一本線と一本線の間に名前と本文が表示されるようにチャレンジをしております。

しかし、画像のように名前で一つ、本文で一つになっており、その上名前と本文が意味不明な位置に表示されております。
試しに名前と本文に「テラテイル」(最新のものになります)と打ったら一番上と下になぜか2つも表示されてしまいました。

配列などを用いた方法や関数を変えてみたりと、どうしても機能いたしませんでした。
この場合はどのポイントが修正が必要になるでしょうか。
宜しくお願い致します。

イメージ説明

<!DOCTYPE html> <html> <head> <meta lang="ja" charset="utf-8"> <title>掲示板</title> </head> <body> <form action="index.php" method="post"> 名前<br><input type="text" name="name" size="20"><br> 本文<br><textarea name="text" rows="4" cols="40"></textarea><br> <input type="submit" value="投稿する"> </form> </body> </html> <?php $x = file_get_contents('board'); if (isset($_POST['name'])) { $x = htmlspecialchars($_POST['name']) . "<hr>$x"; file_put_contents('board', $x); } $y = file_get_contents('board'); if (isset($_POST['text'])) { $y = htmlspecialchars($_POST['text']) . "<hr>$y"; file_put_contents('board', $y); } echo $x; echo $y; ?>

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

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

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

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

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

m.ts10806

2018/05/11 21:57

タグにPHPとあるのでタイトルにわざわざ入れる必要はありません。
guest

回答1

0

画像のように名前で一つ、本文で一つになっており、

名前で1回、本文で1回と書き足しているからだと思います。
例えば、以下のように書き足しを1回にまとめれば良いのではないでしょうか。

php

1<?php 2 $x = file_get_contents('board'); 3 4 if (isset($_POST['name']) && isset($_POST['text'])) { 5 $x = '<span class="post-name">' . htmlspecialchars($_POST['name']) . '</span> <span class="post-text">' . htmlspecialchars($_POST['text']) . "</span><hr>$x"; 6 file_put_contents('board', $x); 7 } 8 9 echo $x; 10?>

投稿2018/05/11 14:01

編集2018/05/11 15:45
Lulucom

総合スコア1899

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

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

rina0366

2018/05/11 14:22

実行した結果動作させることができました! ありがとうございます。 ちなみにこちらですが、これからhtmlやcssでデザイン、コーディングをし、実際にTwitterや掲示板のように差別化をしたいと考えておりますが、同じ変数になっておりますが可能でしょうか?
Lulucom

2018/05/11 15:13

> 同じ変数になっておりますが すみません、ご質問の意味がわかりませんでした。具体的にはどういうでしょうか?
rina0366

2018/05/11 15:34

ご返答ありがとうございます。 つまり名前も本文も$xなのでこれを例えばhtmlで骨組みを作ったり、例えば名前だけ本文とは違うシステムを構築したいとかそういうときに変更ができないのかと思ったのですが・・・
Lulucom

2018/05/12 01:18 編集

理解しました。 少し勘違いしてましたので回答のコード例を修正しました。 HTMLのclass属性で区別できるようにしておき、classに対してCSSを適用すれば良いと思います。 CSSではデザインの適用先をセレクタで指定しますが、セレクタにはHTMLのタグ名、class、idの値などを利用します(PHPの変数は利用できません)。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問