wordpressで掲示板を作成しようと思いますが、登録内容を一覧表示するページは表示されますが、メッセージ投稿ページは表示することができません。
登録内容を一覧表示するページと同じフォルダ内にメッセージ投稿ページを作成すれば、登録内容を一覧表示するページの投稿フォームから呼び出されると書いてありましたが、「ページが見つかりません。」と表示されます。
また、hoge2.phpをテンプレートとして保存し固定ページにすればページ遷移ができると聞いたので以下のやり方をしました。しかし、
html
1<a href="http://localhost:8888/wordpress8/固定ページ名(ここではhoge2)/" >次のページへ行く</a>
だと、ページ遷移はできますが
html
1<form action="http://localhost:8888/wordpress/固定ページ名(ここではhoge2)/" method="GET">
でも、ページが見つかりません。」と表示されます。
どうすればメッセージ投稿ページが表示されますか?
※
登録内容を一覧表示するページ
phpファイル名:hoge1.php
<?php /** * Template Name:hoge1 * */ get_header(); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>一言</title> </head> <body> <form action="http://localhost:8888/wordpress/テンプレート名(ここではhoge2)/" method="GET"> 名前:<br /> <input type="text" name="name" size="30" value="" /><br /> メッセージ:<br /> <textarea name="message" cols="30" rows="5"></textarea><br /> <br /> <input type="submit" value="投稿する" /> </form> <?php // MySQL に接続し、データベースを選択します。 $link = mysqli_connect('localhost', 'root', '1234','hoge'); // 接続状況をチェックします if (mysqli_connect_errno()) { die('接続失敗です。'.mysqli_connect_error()); } print('<p>接続に成功しました。</p>'); // SQL クエリを実行します。 if ($result = mysqli_query($link, 'SELECT * from message1')) { // 結果を出力します。 while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) { echo "<p>\n"; echo '<strong>[No.' . $data['no'] . '] ' . htmlspecialchars($data['name'], ENT_QUOTES) . ' ' . $data['date'] . "</strong><br />\n"; echo "<br />\n"; echo nl2br(htmlspecialchars($data['message'], ENT_QUOTES)); echo "</p>\n"; } // 結果セットを開放します mysqli_free_result($result); } mysqli_close($link); ?> </body> </html>
メッセージ投稿ページ
phpファイル名:hoge2.php
php
1<?php 2/** 3 * Template Name:hoge2 4 * 5 */ 6get_header(); 7?> 8<html> 9<head> 10<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 11<title>一言</title> 12</head> 13<body> 14<?php 15 16if ($_REQUEST['name'] == '' or $_POST['message'] == '') { 17 exit('error'); 18} 19 20$con = mysqli_connect('localhost', 'root', '1234','hoge'); 21if (!$con) { 22 exit('データベースに接続できませんでした。'); 23} 24 25$result = mysqli_select_db($con,'hoge'); 26if (!$result) { 27 exit('データベースを選択できませんでした。'); 28} 29 30$result = mysqli_query($con, 'SET NAMES utf8'); 31if (!$result) { 32 exit('文字コードを指定できませんでした。'); 33} 34 35$name = $_REQUEST['name']; 36$message = $_REQUEST['message']; 37$date = date('Y-m-d H:i:s'); 38 39$result = mysqli_query($con, "INSERT INTO message(name, message, date) VALUES('$name', '$message', '$date')"); 40if (!$result) { 41 exit('データを登録できませんでした。'); 42} 43 44$con = mysqli_close($con); 45if (!$con) { 46 exit('データベースとの接続を閉じられませんでした。'); 47} 48 49?> 50<p>メッセージを投稿しました。</p> 51<ul> 52 <li><a href="hoge1.php">一覧へ戻る</a></li> 53</ul> 54</body> 55</html>