- ベストアンサー
WordPressの質問に関するアドバイスをお願いします
- WordPressの質問についてアドバイスをお願いします。コードを1つにまとめる方法やキーの隠し方について教えてください。
- WordPressの質問についてアドバイスをお願いします。キーを隠す方法についてモジュール作成や環境変数の使用について調べましたが、よく理解できませんでした。
- WordPressの質問に関してアドバイスをお願いします。モジュール作成や環境変数の使用など、キーの隠し方について教えてください。
- みんなの回答 (26)
- 専門家の回答
質問者が選んだベストアンサー
【2023/1/16 ID】 ・IDと iPの話に戻るのですが、投稿IDを取得して表示する方法についてのアドバイスも頂けると助かります。 投稿IDは無関係です。 いえ、言われている投稿IDとはなんのことでしょうか。 私にはWordPressの投稿記事のIDのことのように聞こえているので質問を理解できないでいます。 投稿記事IDを取得したとしても、それは質問者さまの投稿記事IDなので、 掲示板に書き込みした人を識別することはできません。 そうなると、掲示板への投稿者のIDでしょうか。 つまり、WordPressにログインしたユーザーのIDです。 ログインしていない投稿者にはIDはありませんので取得できません。 もしかするとですが、掲示板投稿のIDでしょうか。 それはつまり、先ほど回答した、自動振りした番号のことになります。 これはただの番号なので、同じ人が掲示板投稿しても次々新しい番号が振られるので役にたちません。 IPアドレスについてですが、表示はしないとしても、 管理上データベースには保存する必要があります。 まず、掲示板のデータに投稿してきたIPアドレスを保存しておきます。 それから、荒らし判定したIPアドレスは「荒らしIPアドレステーブル」に登録します。 投稿してきたIPアドレスが「荒らしIPアドレステーブル」に登録されているものであれば、 エラーにするようにすれば投稿を禁止できます。
その他の回答 (25)
- dell_OK
- ベストアンサー率13% (766/5720)
【2023/1/16 番号振り】 ・古いものから順に降っていくように表示する予定です。 それでしたら、データベースに保存した時に自動で番号を振ってくれる機能があるのでその番号でいいと思います。 テーブルの主キーに「AUTO_INCREMENT」を指定するだけです。 表示順(ORDER BY)も日時ではなく、この主キー順でいいです。
補足
アドバイスありがとうございます。番号は主キーでふるようにいたします。
- dell_OK
- ベストアンサー率13% (766/5720)
【2023/1/16 掲示板番号】 ・一覧表示の際にユーザー側から見える形で番号を振る予定です。 毎回1から番号を振って表示するのは簡単です。 以前、カテゴリーランキングのclassに1から番号を振ったのと同じ方法です。 ですが「閲覧者がどの番号まで読んだか確認を取れる形にしたいです。」と前に言われていたので、 単純に1から番号を振ると、それができなくなってしまいます。 新しい順で表示されているとして、新しいものが追加されるとそれが1になってしまい、 そこから先の番号が以前表示されたものとずれてしまうからです。 そうなると、掲示板のメッセージそれぞれに番号が振られていて、 その番号は変わらない方がいいのではないでしょうか。
補足
回答ありがとうございます。番号は変わらないように表示させる予定です。回答は新しい順ではなくGoo質問のように古いものから順に降っていくように表示する予定です。 古い→新しい 番号1→番号2→番号3 IDと iPの話に戻るのですが、投稿IDを取得して表示する方法についてのアドバイスも頂けると助かります。 可能であればIDを投稿に振って荒らし対策をしたいのですが…
- dell_OK
- ベストアンサー率13% (766/5720)
【2023/1/16 番号と日時】 ・回答に上から番号を振りたい場合日時の取得は必要なのでしょうか? 番号を振るためには日時の取得は必要ではないのは確かです。 いろいろ想像して説明してもあてはずれになりそうなので先に確認します。 番号を振ると言うのは、 一覧表示で上から順に1から番号を振って表示することなのか、 データを保存する時に番号を振ることなのか、 どちらでしょうか。
補足
回答ありがとうございます。 一覧表示の際にユーザー側から見える形で番号を振る予定です。 以前参考サイトを見ていて思っていたのですが、これはIDとしてカラムに登録されておりました。
- dell_OK
- ベストアンサー率13% (766/5720)
【IPアドレス 2023/1/15】 参考サイトの情報はSQL Serverのものですので使えないと思います。 仮にMySQLでできたとしても、データベースで取得できるのはアクセスしているユーザーのIPアドレスです。 アクセスしているユーザーとはPHPを実行しているWEBサーバーになりますので、閲覧している人のIPアドレスではありません。 閲覧者のIPアドレスはWordPress標準ではないのか、アドインの情報がいくつか検索で出てきたので、そちらを考慮してみてください。
補足
回答ありがとうございます。 閲覧者IPアドレスとお伝えしていたのですが正式には回答者のIPアドレスになります。申し訳ありません。 投稿IDを使用できないかdell_okさんにお聞きした理由がありまして、IPアドレスは外部に表示させることはあまり良いことではないと書かれていたため、固定ページの投稿IDから取得できないかと考えておりました。 投稿IDであれば閲覧者にも表示ができ目視で確認ができるため抑止力になるのではないかと期待していた為です。閲覧者側からお問い合わせページを通して目に余る荒らし行為の申告があれば、見落とした際に対応することができます。 ここで問題として挙げていた最近のコメントに召集されてしまうのではないか、その他既存の機能に支障が出るのではないかと考えてIPアドレスで規制する方法を思いつきました。 IDとIPアドレス以外の件になるのですが、回答に上から番号を振りたい場合日時の取得は必要なのでしょうか? ※参考サイト http://keylopment.com/faq/1888/
- dell_OK
- ベストアンサー率13% (766/5720)
【掲示板 2023/1/15】 そうですね。 参考サイトは投稿に対してのコメント機能なので投稿IDが必要になっています。 掲示板は投稿には無関係なので投稿IDは不要です。 雑談掲示板の表示については、以下のようになると思っています。 年月日時分秒の新しいもの順です。 ~~~~ メッセージ 年月日時分秒 名前 メッセージ 年月日時分秒 名前 メッセージ 年月日時分秒 名前 メッセージ 年月日時分秒 名前 メッセージ 年月日時分秒 名前 ~~~~~ ひたすらこれが続きます。 WordPressのコメントのような階層もありません。 このイメージであっていますか。
補足
アドバイスありがとうございます。 想像しているイメージと異なるようです。 書き込みの日時についてですが、掲示板はcronで5〜7日で削除するように設定する予定ですので、表示する必要はないと考えております。 現在考えているイメージは下記になります。 番号は回答者側の方に設けたいと考えています。閲覧者がどの番号まで読んだか確認を取れる形にしたいです。 荒らし対策のためにIDとiPは取得を考えています。 掲示板である以上書き込みの保存は必要ですので、IDかiPの保存も必須になりそうです。 番号 名前 メッセージ ID or iP 番号 名前 メッセージ ID or iP 番号 名前 メッセージ ID or iP 以下略 ※参考サイト(SQLでiP取得) https://www.projectgroup.info/tips/SQLServer/SQL/SQL000026.html
- dell_OK
- ベストアンサー率13% (766/5720)
【掲示板 2023/1/14】 ・entry-form.php(入力フォーム)の送信ボタンに原因があるようですが、valueでデータベースに保存する投稿IDを送信したいためどのようなコードを書けばよいのか分かりません。 前回言えばよかったのですが、掲示板は投稿とは無関係のはずではないですか。 投稿IDを送信する必要はないと思います。
補足
【掲示板 2023/1/14】 A.回答ありがとうございます。投稿IDを取得したい理由があります。 1つめは回答に応じて番号を振りたいのですが、その際に回答1、回答2、回答3としたい場合入力フォームの$message_valueだけでは不可能ではないかと考えています。 SQLで新しいテーブルを作成してテーブルに番号を振る場合、投稿IDは必要ないのでしょうか? 2つめは荒らし行為に対して特定のIDを一時的に投稿できないように制限する機能を作成したいと考えております。 IPアドレスをSQLで取得してそちらで制限することも可能だと思うのですが、固定ページの投稿IDで可能であればそちらを使うのが適切なのではないかと考えました。 参考サイトを見て誤解しているかもしれないのですが、投稿IDから$comment_idと$user_idと取得するのではないのでしょうか? 投稿IDは直接必要ではない気もするのですが.... 理解が追い付いていないためアドバイスお願い致します。 ※参考サイト https://qiita.com/ryouya3948/items/6928c89607cf4eaa72a0
- dell_OK
- ベストアンサー率13% (766/5720)
【404エラー 2023/1/13】 ・entry-main.phpに原因があると考えているのですが、dell_okさんから見ておかしなところなどありますでしょうか? entry-form.phpの不正アクセスチェックにかかっているためです。 ---- // 不正アクセスチェック if(!$noindexaccess){ header("HTTP/1.0 404 Not Found");exit(); } ---- entry-main.phpにお問い合わせ(contact-index.php)と同じようにフラグの初期化を追加してみてください。 ---- // エラーメッセージと不正アクセスフラグ $error_mes = ""; $noindexaccess = true; ----
補足
アドバイスありがとうございます。修正したところ新たなエラーが発生していた為コードの変更を行いました。 入力フォームは表示することができたのですが、送信を押しても確認画面に飛ばないため2段階目でつまずいております。 entry-form.php(入力フォーム)の送信ボタンに原因があるようですが、valueでデータベースに保存する投稿IDを送信したいためどのようなコードを書けばよいのか分かりません。 valueは並列して2つ並べられるのでしょうか? もう1点お聞きしたいのですが、今回の場合entry-form.phpでエラーが起きていた場合entry-confirmationform.phpの修正は必要ないのでしょうか? ※元のお問い合わせフォームのコード echo '<input type="hidden" name="action" value="confirm">'; ↓ ※entry-form.php38行目 echo '<input type="hidden" name="action" value="<?= $post['id'] ?>">'; ↓ echo '<input type="hidden" name="action" value="'.$post->id.'">'; ※entry-confirmationform.php42行目 <input type="hidden" name="action" value="<?= $post['id'] ?>">> ↓ <input type="hidden" name="action" value="<?= $post->id ?>">> ※参考サイト https://qiita.com/ryouya3948/items/6928c89607cf4eaa72a0 ※現在のコード https://wandbox.org/permlink/wi3E4lDdYWrFGGbl ※変更前のエラー文 Parse error: syntax error, unexpected 'id' (T_STRING), expecting ';' or ',' in /home/zblgibzx/public_html/wp-content/themes/sample_theme/entry-form.php on line 42
- dell_OK
- ベストアンサー率13% (766/5720)
【掲示板エラー 2023/1/13】 エラーの個所を以下のようにしてみてください。 ---- echo '<input type="hidden" name="action" value="'.$post['id'].'">'; ----
補足
回答ありがとうございます。修正したところエラーは消えたのですが、404エラーが発生しました。 恐らくファイル構成から修正する必要がありそうです。 今から作り変える予定なのですが、入力フォーム→確認画面→保存に問題があるとは思えません。 entry-main.phpに原因があると考えているのですが、dell_okさんから見ておかしなところなどありますでしょうか? ※現在のコード https://wandbox.org/permlink/GbY59Cv3rVIG3kkM ※該当URL http://www.last.cfbx.jp/entry/
- dell_OK
- ベストアンサー率13% (766/5720)
【掲示板テーブル 2023/1/13】 ・本来は記事に記載されたコメントのみを集めるように作成したはずが掲示板のコメントも収集してしまうのではないかと心配です。 それは心配ありません。 記事コメントと掲示板コメントはテーブルが違うので大丈夫です。 comment_idやuser_idは列名が同じでも別テーブルなので問題ありません。 sortable は雑談掲示板用でしょうか。 質問掲示板用はまた別のテーブルにしてくださいね。 コードはこれから拝見します。
補足
アドバイスありがとうございます。 先に質問掲示板(ファイルを分ける)簡単な方から作成しております。 テーブルの件、勉強になりました。ありがとうございます。
- dell_OK
- ベストアンサー率13% (766/5720)
・投稿IDを取得してどの投稿に対しての掲示板コメントなのかを判断する ・投稿コメントと掲示板コメントの同時実装 意味がわかりません。 掲示板をどこに配置されるつもりでしょうか。 記事に配置するのだとしたら、賛成できません。 それは投稿コメントですることだと思うからです。 ひとつのページにコメントが2種類あると、利用者がどちらに投稿したらいいかわかりませんし、仮にわかったとしても、どっちでもいいやって気持ちになって、質問者さまが投稿して欲しい方に投稿されなくなりかねません。 なので、記事に配置しないですし、投稿IDも不要です。
お礼
こちらが最新の質問になります。掲示板のフォームからの送信内容がデータベースに保存されるか確認するために固定ページにファイル1式を配置してみたのですが、entry-form.phpでエラーが発生しております。構文は問題ないはずなのですが.... アドバイスお願い致します。 ※エラー文 Parse error: syntax error, unexpected 'id' (T_STRING), expecting ';' or ',' in /home/zblgibzx/public_html/wp-content/themes/sample_theme/entry-form.php on line 38 ※ファイル1式(<script></script>はエラーになるためタグを閉じないようにしております) https://wandbox.org/permlink/cHgXuSN6hX6OAqDL main.php (index.phpの役割 ファイルの統括) entry-form.php (入力フォーム) confirmationform.php (確認画面) stringcode.php (文字列チェック) ※該当url http://www.last.cfbx.jp/contact/%e8%b3%aa%e5%95%8f%e6%8e%b2%e7%a4%ba%e6%9d%bf/
補足
回答ありがとうございます。掲示板は設置バナーから飛ぶように考えていますので記事には配置いたしません。 別のページを用意してそちらに作成予定です。1つ不安視していることがありましてSQLでcomment_idやuser_idを使う場合、front-page.phpに設置している最近のコメントとして表示されてしまうのではないかと思いました。 本来は記事に記載されたコメントのみを集めるように作成したはずが掲示板のコメントも収集してしまうのではないかと心配です。 <?php function display_question_form() { global $wpdb; //input.phpの値を取得 $message = $_POST['message']; $comment_id=$_POST['comment_id']; $user_id=$_SESSION['user_id']; $post_id=$_POST['id']; $user_id=htmlspecialchars($user_id,ENT_QUOTES,'UTF-8'); $sql = "INSERT INTO sortable(message,user_id,comment_id) VALUES(:message,:user_id,:comment_id)"; // テーブルに登録するINSERT INTO文を変数に格納 VALUESはプレースフォルダーで空の値を入れとく $query = $wpdb->prepare($sql); } ?> ※最近のコメント https://imgur.com/3ofY5Ye.jpg ※該当URL http://www.last.cfbx.jp/
お礼
Q.ログインしていない投稿者にはIDはありませんので取得できません。 A.回答ありがとうございます。 複数のまとめサイトにはログイン処理なしでコメントにIDが出ているためコメントの際にvalueでIDを渡せるのではないかと考えております。 両サイトともにコメントすると同じIDが表示されています。wifiが変わるとIDは変更されるようです。 ※参考サイト https://imgur.com/3Ug2WO7.jpg https://imgur.com/yQvQVsh.jpg 別のサイトから名前にIDを設定できる方法を見つけました。 IDも取得したいのですが、IPも別途取得した方がよいかもしれません。 何か問題が生じた際にIPアドレスを取得できないと、大きな問題に発展してしまうリスクがあります。 ※該当コード <input type="hidden" name="id" value="<?php echo substr(base_convert(md5(session_id()), 16, 36), 0, 6); ?>"> // セッションIDをMD5でハッシュ化して、先頭の6文字をIDとして使う echo substr(base_convert(md5(session_id()), 16, 36), 0, 6); ※参考サイト https://web.analogstd.com/tips/posts/php/how-to-mount-comment-func-without-sql.php Q.投稿してきたIPアドレスが「荒らしIPアドレステーブル」に登録されているものであれば、 エラーにするようにすれば投稿を禁止できます。 A.アドバイスありがとうございます。 IDが取得できない場合はIPアドレスを保存するように致します。 質問の期限が切れそうなため下記URLから引き続きよろしくお願い致します。 https://okwave.jp/qa/q10093310.html