wordpress内に自作の掲示板機能を導入したいのですがつまづいております。


各固定ページ内に掲示板投稿フォームを設置して、同ページ内にフォーム内容を出力したいと考えています。
固定ページ(page.php)内でpost.phpを呼び出しており、下記post.phpの中身(一部)です。

新規投稿<br />
<form method="post" action="complete.php">
名前<br />
<input type="text" name="name" /><br />
LINE ID
<input type="text" name="lineid" /><br />
住所<br />
<input type="text" name="address" /><br />
年齢<br />
<input type="text" name="age" /><br />
メッセージ<br />
<input type="text" name="comment" /><br />
<input type="submit" value="OK" />
</form>

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2015/02/18 13:21:17
  • 終了:2015/02/25 13:25:06
id:hiroyukkkky

下記、complete.phpの一部です。


$name=$_POST['name'];
$lineid=$_POST['lineid'];
$address=$_POST['address'];
$age=$_POST['age'];
$comment=$_POST['comment'];

$name=htmlspecialchars($name);
$lineid=htmlspecialchars($lineid);
$address=htmlspecialchars($address);
$age=htmlspecialchars($age);
$comment=htmlspecialchars($comment);

$connect = mysql_connect('mysql454.db.sakura.ne.jp','nanpa','346kusai');
if(!$connect){
exit('データベースに接続できません');
}

print('接続成功');

$result = mysql_select_db('line',$connect);
if(!$result){
exit('データベースを選択できません');
}

print('データベース選択成功');

$result = mysql_query('SET NAMES utf8',$connect);
if(!$result){
exit('文字コードを指定できません');
}

print('文字コード選択成功');

$result = mysql_query("INSERT INTO line(name,lineid,address,age,comment) VALUES ('$name','$lineid','$address','$age','$comment')",$connect);
if(!$result){
exit('登録が完了できませんでした');
}
?>


</body>
</html>

フォームに何も入力しないで送信ボタンを押すとトップページに飛ばされ(urlはhttp://xxx.com/固定ページディレクトリ/complete.php)、入力をして送信ボタンを押すと、エラーが出て先に進めません。

page.phpとcomplete.phpは同じディレクトリに置いてます。また、wordpressに適応させたjquerymobileでサイト全体を作ってます。

情報がたりない場合はご指摘いただきたいです。
よろしくお願いいたします。

回答(0件)

回答はまだありません

  • id:rouge_2008
    > フォームに何も入力しないで送信ボタンを押すとトップページに飛ばされ(urlはhttp://xxx.com/固定ページディレクトリ/complete.php)、入力をして送信ボタンを押すと、エラーが出て先に進めません。

    前半部分に記述した動作(※未入力送信の場合にトップページ?に移動)についても何か問題がありますか?(「http://xxx.com/固定ページディレクトリ/complete.php」はトップページではなく、フォーム送信後に送信内容の処理を行って結果を返すPHPのページだと思いますが・・・)

    入力送信時に発生するエラーはどのように表示されますか?
    ※将来のバージョンのPHPではMySQL関数が利用できなくなりますので、MySQLi関数またはPDO_MySQLを利用するようにした方がいいです。


    ・10 年前からずーっと MySQL 拡張モジュール (ext/mysql) を使ってきました。なぜ今さら「使ってはいけない」と言われるのですか? 廃止されちゃうんですか? 私はいったいどうすればいいの? 今までのコードはどうなるの?
    http://php.net/manual/ja/faq.databases.php#faq.databases.mysql.deprecated

    ・どの API を使うか
    http://php.net/manual/ja/mysqlinfo.api.choosing.php


    ※それから、コード内にデータベースのサーバー、ユーザー名、パスワードが記載されています。
    データベースの内容が変更されていない事を確認して、ユーザー名とパスワードを変更するか、あるいはデータベースを削除して作成し直した方がいいと思います。
  • id:syamaoka
    >|php|
    <?php

    $result = mysql_query("INSERT INTO line(name,lineid,address,age,comment) VALUES ('$name','$lineid','$address','$age','$comment')",$connect);
    ||<

    SQL Injection の脆弱性があります。
    心苦しい提案ですが、質問者さんではまともなシステムを開発できないと見受けられますので、既存のプラグインを採用するか専門家に依頼されることをお勧め致します。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません