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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

3794閲覧

wordpressで掲示板を作成する方法

uverworld101nm

総合スコア172

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/09/05 06:31

wordpressで掲示板を作成しようと思いますが、登録内容を一覧表示するページは表示されて、メッセージ投稿ページは表示されません。

登録内容を一覧表示するページと同じフォルダ内にメッセージ投稿ページを作成すれば、登録内容を一覧表示するページの投稿フォームから呼び出されると書いてありましたが、「ページが見つかりません。」と表示されます。
どうすればメッセージ投稿ページが表示されますか?

登録内容を一覧表示するページ
phpファイル名:hoge1.php

php

1<?php 2/** 3 * Template Name:hoge1 4 * 5 */ 6get_header(); 7?> 8 9<html> 10<head> 11<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 12<title>一言</title> 13</head> 14<body> 15<form action="hoge2.php" method="post"> 16 名前:<br /> 17 <input type="text" name="name" size="30" value="" /><br /> 18 メッセージ:<br /> 19 <textarea name="message" cols="30" rows="5"></textarea><br /> 20 <br /> 21 <input type="submit" value="投稿する" /> 22</form> 23<?php 24 25$con = mysql_connect('localhost', 'root', '1234'); 26if (!$con) { 27 exit('データベースに接続できませんでした。'); 28} 29 30$result = mysql_select_db('phpdb', $con); 31if (!$result) { 32 exit('データベースを選択できませんでした。'); 33} 34 35$result = mysql_query('SET NAMES utf8', $con); 36if (!$result) { 37 exit('文字コードを指定できませんでした。'); 38} 39 40$result = mysql_query('SELECT * FROM messages ORDER BY no DESC', $con); 41while ($data = mysql_fetch_array($result)) { 42 echo "<p>\n"; 43 echo '<strong>[No.' . $data['no'] . '] ' . htmlspecialchars($data['name'], ENT_QUOTES) . ' ' . $data['created'] . "</strong><br />\n"; 44 echo "<br />\n"; 45 echo nl2br(htmlspecialchars($data['message'], ENT_QUOTES)); 46 echo "</p>\n"; 47} 48 49$con = mysql_close($con); 50if (!$con) { 51 exit('データベースとの接続を閉じられませんでした。'); 52} 53 54?> 55</body> 56</html>

メッセージ投稿ページ
phpファイル名:hoge2.php

PHP

1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4<title>一言</title> 5</head> 6<body> 7<?php 8 9if ($_REQUEST['name'] == '' or $_POST['message'] == '') { 10 exit('error'); 11} 12 13$con = mysql_connect('localhost', 'root', '1234'); 14if (!$con) { 15 exit('データベースに接続できませんでした。'); 16} 17 18$result = mysql_select_db('phpdb', $con); 19if (!$result) { 20 exit('データベースを選択できませんでした。'); 21} 22 23$result = mysql_query('SET NAMES utf8', $con); 24if (!$result) { 25 exit('文字コードを指定できませんでした。'); 26} 27 28$name = $_REQUEST['name']; 29$message = $_REQUEST['message']; 30$created = date('Y-m-d H:i:s'); 31 32$result = mysql_query("INSERT INTO messages(name, message, created) VALUES('$name', '$message', '$created')", $con); 33if (!$result) { 34 exit('データを登録できませんでした。'); 35} 36 37$con = mysql_close($con); 38if (!$con) { 39 exit('データベースとの接続を閉じられませんでした。'); 40} 41 42?> 43<p>メッセージを投稿しました。</p> 44<ul> 45 <li><a href="hoge1.php">一覧へ戻る</a></li> 46</ul> 47</body> 48</html> 49

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

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

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

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

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

ttyp03

2016/09/05 07:12

WordPressは使ったことないのですが、提示のコードはWordPressに関連したコードがあるのでしょうか?一見したところ普通のPHPのように見えますが。WordPressと関係のない質問でしたらタイトルを変更した方がよいです。いずれ関係してくるのかもしれませんが、本件に関して言えばWordPressの質問にするのは間違っていると思います。
jm1156

2016/09/05 07:15

「ページが見つかりません。」ということですが、 エラーコードはわかりますか? HTTP 404 ならアドレスがまちがいとかです。
uverworld101nm

2016/09/05 07:29

いいえ、wordpressでかんれんした質問です。 もしかして、mysqli_connectを使えばいいですか?
ttyp03

2016/09/05 07:35

ああ、最初にget_header関数を呼んでるくらいですかね?WordPress関連は。だとしてもWordPressに関連付けるほどの質問でもないと思うのですが。
uverworld101nm

2016/09/05 09:31

wordpressで掲示板を作成したいです。
uverworld101nm

2016/09/05 09:31

<?php /** * Template Name:hoge1 * */ get_header(); ?> <?php echo hello; ?> の下にコメントフォームを設けたいです。
退会済みユーザー

退会済みユーザー

2016/09/06 05:57

まずは日本語通じるようになってから来てください。
guest

回答3

0

ベストアンサー

  • WordPressでデータベースに接続する場合、プレーンのPHPでデータベースに接続する方法は使用しません。WordPressにAPIが用意されているのでそれを使用します。
  • get_header()関数は、テーマフォルダ内にあるheader.phpを呼び出す関数です。HTMLのheadなどが重複していると思うので見直された方がよいかと思います。
  • フォームから受け取っている値が一切検証されていませんが、セキュリティ的に大丈夫でしょうか?
  • まずはPHPの必要最低限の知識(プレーンのPHPでデータベースを絡めたセキュアな掲示板が作れるetc)を身につけたあと、WordPressの知識を習得された方がよいように感じます。
  • 掲示板を作りたいなら、WordPressを使う必要性はないように感じますが・・・。どうしてもWordPressがよい!というのであれば、下手に自作しないで、素直にプラグインを使用することをオススメします。

投稿2016/09/05 07:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

uverworld101nm

2016/09/05 08:13

ご回答ありがとうございます。 実はphpファイルを固定ページとして挿入しています。 またプラグインを使わないのは、表示したい固定ページをphpで作りたいからです。 例えば、 <?php /** * Template Name:hoge1 * */ get_header(); ?> <?php echo hello; ?> の下にコメントフォームを設けたいです。
退会済みユーザー

退会済みユーザー

2016/09/05 08:35

…あ、いや、上記の私の回答内容をちゃんと読んでくださいね…。uverworld101nmさんのやりたい事は多分皆分かっています。分かっているのですが…。
退会済みユーザー

退会済みユーザー

2016/09/05 08:50 編集

ちょっと…難しいと思います。
uverworld101nm

2016/09/05 09:26

どういう風に書けばいいですか?
uverworld101nm

2016/09/05 09:26

コードに間違っている点があるなら教えて下さい。
退会済みユーザー

退会済みユーザー

2016/09/05 10:05

全部間違っていると思いますし、teratailは全ソースコード(1つのアプリケーションが動く程のソースコード)を無償で提供するような場ではないと思っていますので、回答は差し控えさせていただきます。お力になれず申し訳ありません。 上記でも回答いたしましたが、まずは"PHPの必要最低限の知識(プレーンのPHPでデータベースを絡めたセキュアな掲示板が作れるetc)を身につけたあと、WordPressの知識を習得"から挑戦してみてはいかがでしょうか。
guest

0

毎度毎度言っていますが、前の質問解決してから次の質問に移りましょうよ。

>どうすればメッセージ投稿ページが表示されますか?
正しく理解して書けば表示されます。

投稿2016/09/05 06:41

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/09/05 07:14 編集

ただ解決済みにすれば良いと言っているわけでなく、理解はされているのでしょうか? もし「ただ単に解決済みにすれば良い」と取られたのであれば、それは間違いです。 こちらがあなたの理解力に合わせた回答が出来ず申し訳ないです。 「理解したうえで解決してから解決済みにする。そして次の質問に移ってください」という意味です。 追記:「前の質問」とは「ひとつ前の質問」ではなく、「過去の質問全て」ですよ。    これまたあなたの理解が出来ない回答になっていたみたいです。申し訳ありません
jm1156

2016/09/05 07:13

解決してないのに「解決済」にするのは止めましょう。 最終的にどうやって解決したのかと、できれば回答者さんへのお礼のコメントも書いたほうがいいと思いますよ。
guest

0

http://www.php-labo.net/tutorial/example/message_mysql.html
http://php.net/manual/ja/function.mysql-connect.php
その例は既に推奨されていないので別のを参考にしましょう

投稿2016/09/05 06:51

date

総合スコア1820

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

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

uverworld101nm

2016/09/05 06:56

dateさんが提示したサイトを使っています。
date

2016/09/05 07:21

例題にあるmysql_connectは既に推奨されておりません。 参考にするwordpress 掲示板 phpを新しいのにしましょう。 この質問に対する回答は、これを使うな別のを参考にしてです
date

2016/09/05 23:18

いろんな方に言われていますが、今のあなたに作るのは不可能です。 仮に私が作れと言われても数か月単位の仕事になるでしょう。 あなたが作れとなれば数年は必要です。 そもそもアフィリエイトってそんなにもうかるようなものじゃない。 あなたは本当にこんなことに時間を使っていいのかよく考えてください
uverworld101nm

2016/09/06 04:41

mysqli_connectを使えば、確か接続できましたよね!
date

2016/09/06 05:54

データベースとは接続できます。それで掲示板が作れるかはべつです。 これ以降はエラーが出せるようになったら答える
退会済みユーザー

退会済みユーザー

2016/09/06 05:56

>dateさん どうやら日本語が通じてないようです。「推奨されていないから別のを使って」という意味が通じていないみいたいですね。何回もコメントで同じこと聞いていますし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問