do | 創作・同人サイト制作支援サイト › フォーラム › 不具合・要望 › コイブミにて送信が行えない
-
投稿者投稿
-
あゲストいつも大変お世話になっております。
どうしても解決できなかったため、大変お手数おかけいたしますが以下ご確認いただけないでしょうか。なお同じサーバー・ブラウザでも、なぜか挙動に差分が出ている状態のため、動作の切り分けが充分に出来ておりません。
重ね重ね恐れ入りますが、こちらで出来る動作確認パターンがありましたらご教示いただけますと幸いです。■事象
コイブミVer2.0.4にてメッセージを入力し、送信ボタンを押下すると以下のいずれかの挙動になります。挙動パターン① ※発生率20%程度
・「何か問題が起きたようです」とエラー表示される
・「現在文字数」部分はリアルタイムで動いている
・管理画面にメッセージは届いていない
☆確認環境:
・リトルサーバーかつChromeの場合挙動パターン② ※一度のみ再現
・送信ボタンを押下すると「トークンが一致しません」とエラー表示される
・「現在文字数」部分はリアルタイムで動いている
・管理画面にメッセージは届いていない
☆確認環境:
・ロリポップサーバーかつChromeの場合挙動パターン③ ※発生率80%程度
・送信ボタンを押下してもエラーメッセージが表示されず、無反応
・「現在文字数」部分はリアルタイムで動いていない
・管理画面にメッセージは届いていない
☆確認環境:
・リトルサーバーかつChromeの場合
・リトルサーバーかつEdeの場合
・ロリポップサーバーかつChromeの場合なお、コイブミVer1.4の場合の挙動は以下の通りです。
※長らくサイト放置しておりアップデートが間に合っておりませんでした。
申し訳ありません。挙動パターン① ※期待値通り
・メッセージ押下後、ポップアップが表示される
・「現在文字数」部分はリアルタイムで動いている
・管理画面にメッセージが届く
☆確認環境:
・ロリポップの場合挙動パターン②
・送信ボタンを押下してもエラーメッセージが表示されず、無反応
・「現在文字数」部分はリアルタイムで動いていない
・管理画面にメッセージは届いていない
☆確認環境:
・リトルサーバーの場合なお、いずれの確認パターンにおいても以下を全て実施済みです。
・キャッシュクリア
・F12>スーパーリロード
・プライベートブラウザでの確認
・chrome://net-internals/#hsts にてキャッシュを削除(ChatGPTに教えてもらった方法のため正しいかは不明です)■環境
・Windows11
・Chrome 137.0.7151.69(Official Build)
・Edge 137.0.3296.62 (公式ビルド) (64 ビット)
・リトルサーバー(PHP8.2)
・ロリポップ(PHP8.2 CGI版)
※上記サーバー間でサイト構成、ソースに差分なし
・いいねボタン改Ver3.0は動作確認済み
(とても便利なツールをご提供いただき、いつもありがとうございます)
・コイブミのアップデート>設置から36h以上経過しています
※「いいねボタン改不具合について」では12h経過後に事象に変化がありました
なお私は上記リンク先の「あ」と同一人物です。■実際の手順
①Ver2.0.4をダウンロードし、datasフォルダ以外のファイルを上書きアップロードする
②サーバー上でメッセージを入力し、送信ボタンを押下する
③設置マニュアルを参照しながら1から設置しなおす
④再度挙動を確認する
⑤事象に変化ないため、Ver1.4にVerダウンさせる(datasフォルダ以外のファイルを上書きアップロードする)
→ロリポップは事象解決、リトルサーバーは事象変化なしここまでの操作でHTMLソースは触っておりません。
■その他確認したこと
・「何か問題が起きたようです」とエラー表示される場合、送信ボタンを押下すると、ソースコードが以下のように変化します。送信前:
<p id=”koibumi_alert” style=”display: none;” class=””>何か問題が起きたようです</p>送信後:
<p id=”koibumi_alert” style=”display: block;” class=”alert”>何か問題が起きたようです</p
。エラーメッセージが表示されない場合は特に変化は見受けられませんでした。
・F12>Network>_alax.phpの中身を確認する
※Chromeにて確認- payload
path:[サイトURL]
title:[サイト名]
message:[入力したメッセージ]
token:空白、何も表示されていませんでした
mode:check - Preview
以下が書かれていました。
Deprecated: Creation of dynamic property koibumi::$today is deprecated in /home/[サイトURL]koibumi_app/koibumi.php on line 33
Deprecated: Creation of dynamic property koibumi::$time is deprecated in /home/[サイトURL]koibumi_app/koibumi.php on line 34
Deprecated: Creation of dynamic property koibumi::$csvToday is deprecated in /home/[サイトURL]koibumi_app/koibumi.php on line 36
Deprecated: Creation of dynamic property koibumi::$visitorIP is deprecated in /home/[サイトURL]koibumi_app/koibumi.php on line 38
token - Response
Previewと同様 - Initiator
Request call stack
send @ jquery.min.js:2
ajax @ jquery.min.js:2
ce.each.ce.<computed> @ jquery.min.js:2
(anonymous) @ koibumi.js:92
dispatch @ jquery.min.js:2
(anonymous) @ jquery.min.js:2
「いいねボタン改不具合について」を参考に確認したものの、情報に不足ありましたら申し訳ありませんがご指摘いただけますと幸いです。
お忙しいところ大変お手数をおかけいたしますがよろしくお願いいたします。
あゲストChatGPTと共に追加調査を実施しましたのでご報告いたします。
なお私自身が本事象の調査方法に明るくないため、大変恐縮ですが以下の文章作成はChatGPTが作成したものが基になっております。
実施内容が的外れでしたら申し訳ありません。
<p style=”text-align: left;”>【調査内容】
■ _ajax.php`をブラウザで直接実行</strong></p>
URL:https://[ドメイン]/koibumi_app/_ajax.php→ 実行結果:
[“2270c3e6b035d38768e5cc0679697488″,”5″,”1000”]
純粋なJSONとして問題なく取得できていることを確認しました。■display_errors の確認
以下のPHPコードを用いて確認いたしました。
<?php
echo ini_get(‘display_errors’) ? ‘on’ : ‘off’;
?>
→結果:
on(リトルサーバー)■ChatGPTの解決方法案
_ajax.php を直接実行した際はJSONが正常に返却されていたため、サーバー側での致命的エラーは発生していないと考えられます。
ただし、display_errorsが onのため、今後 PHP 8.1 以降の環境でDeprecated警告等が JSON に混入し、jQuery での$.ajax()によるトークン取得時に失敗する可能性が高いと推測しております。ChatGPTによる解決方法案は以下の通りでした。
・_ajax.phpの先頭にerror_reporting(0); ini_set(‘display_errors’, 0);を追加し、Ajax経由で取得されるレスポンスからDeprecated警告を除外する処理の追加
・今後のバージョンでdisplay_errorsが有効な場合のAjax出力に備えた改修以上になります。
お手数おかけいたしますがよろしくお願いいたします。
ガタガタキーマスターご報告ありがとうございます。
いいねボタンの例がありますので、ブラウザではなく、サーバーのキャッシュを確認していただけますでしょうか。
サイトの運営者が意図せずとも、サーバー側でキャッシュが生成されていて、そのせいでプログラムをアップデートし、ブラウザのキャッシュをクリアしても動作が上手くいかない、という場合があります。
サーバーの管理画面からキャッシュをクリアできる方法があれば、それを試していただくか、サーバーキャッシュのクリア方法が不明であれば数日放置して再試行することが対処法となります。
また、「上手く動作しなかった条件」とは別に「上手く動作した条件」があればそちらも教えていただけますと解決の糸口に繋がるかと思います。
よろしくお願いいたします。
あゲストお世話になっております。
お忙しい中ご確認いただきましてありがとうございました。その後、リトルサーバーに問い合わせ、返答が来ましたのでご報告させていただきます。
サーバー側でキャッシュは保持していないそうです。■問い合わせ内容
・本事象の共有(サーバーのキャッシュを疑っている旨を伝えてあります)
・サーバー側はどの程度の期間キャッシュを保持しているでしょうか?
・サーバー側のキャッシュをクリアするにはどのような操作が必要でしょうか?■返答
サーバー側でキャッシュを保持しているという事はありません。
例外としてphpのopcodeは保持しますが、本件の場合は関係なさそうです。■上手く動作した条件
記載が漏れており申し訳ありません。
以下の通りです。・ロリポップサーバー
・Ver.1.4リトルサーバーではコイブミの期待値動作を確認できておりません。
また、Ver2.0.4ではサーバー問わず期待値動作を確認できておりません。以上になります。
よろしくお願いいたします。
あゲストお世話になっております。
原因が分かりましたので共有させていただきます。
以下のコードが原因でした。<!– ダッシュ置換 –>
<script>
document.addEventListener(‘DOMContentLoaded’, function() {
document.querySelectorAll(‘*’).forEach(function(el) {
if (el.textContent.includes(‘―’)) {
el.innerHTML = el.innerHTML.replace(/―/g, ‘<span class=”dash-line”>─</span>’);
}
});
});
</script>
<!– ダッシュ置換 –>上記のコードを削除したところ正常動作を確認いたしました。
この度は大変お手数をおかけいたしました。
以上になります。
よろしくお願いいたします。
ガタガタキーマスターご連絡ありがとうございます。
次回以降、プログラムに不具合が発生したときは、まずまっさらなページに当該プログラムを設置しても動作するかをご確認いただけると、原因が分かりやすくなるかと思います。
引き続きプログラムをご活用いただけましたら幸いです。
- payload
-
投稿者投稿