凍結
0 しろーと SCV40
トップページにメールフォームを設置したいのですが、上手くformタグが機能しません。

過去スレで同じような質問があり、そこに書かれていたformタグを使ってみたのですが、下記のタグにかかれているように自サイトのIDを入力し送信してもnot foundと出てしまいます。
あまり詳しくないので、何が間違っているのかも分かりません。
出来れば名前欄なども作りたいのですが、どうかご教示願えないでしょうか?

<form method="post" action="/サイトのID/mailbox.php?guid=on"><input type="hidden" name="id" value="サイトのID" />

<textarea name="message" rows="10" cols="30" style="max-width:100%"></textarea><br>
<br>
<input type="submit" name="submit" value="送信" onclick="input_token();">

<input type="hidden" name="token" value="" id="token" />
</form>

<script type="text/javascript">
function input_token () {
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1;
var day = now.getDate();
var token = year + '-' + month + '-' + day;
document.getElementById('token').value = token;
}
</script>
03/30 23:18
返信
コメント投稿 検索
1 しち Firefox
>>0
結論を纏めると、
*「Not Found」と出るなら、URLが間違っている
*しかし、URLが正しかろうと>>0のHTMLではトップページからメッセージを送るのは不可能
*なぜなら>>0のHTMLは旧式のものであり、現在はALICE+側の仕様が変わったため、HTMLも最新式にしなければメッセージを送れなくなった
#今後もこういった仕様変更がありうるので、そもそもトップページにメールフォームを手書きHTMLで設置するのを“やめた方がいい”と思われる(→本来のメールボックス画面に独自タグを使ってメルフォを作る方が安全)
*それと、もしかしたら手書きHTMLメルフォだとガラケーに対応できていない恐れもある(※確認できる環境がPCとスマホしかないので確認しようがない)

順に詳細をば……
>>URLが間違っている
そのエラー画面に
* The requested URL ●●●●mailbox.php was not found on this server.
とかなんとか出ているかと思います。

大体想定できるのは以下です。
*『 action="/サイトのID/mailbox.php?guid=on" 』の部分をよく確認してみてください。
●スラッシュが抜けている(スラッシュが抜けるとURLが変わってしまうので、とても重要)
●スペルミス・半角のつもりが全角になっている
●〔自動改行する〕設定になっている上で、URLの間に無用な改行が入っている
●メルフォを設置しようとしているトップページのURLが『 https://alicex.jp 』じゃない(流石にこれは無いとは思いますが)

しかし、
>>0のメールフォームで実験してみたところ、URLが正しかろうと現状メッセージが送れません。
子ページで実験したのですが、子ページメルフォから本来のメールボックス画面へ飛ばされるだけになり、「子ページからメッセージを送る」ということはできませんでした。
これは「 ALICE+さんのメールボックス機能の仕様が変わったせい 」です。
>>つまり >>0のHTMLは、今はもう使えないということです。

よって……一意見ですので別に強制ではないんですが、
# そもそも、トップページにメールフォームを手書きHTMLで設置するのを“やめた方がいい”です……

おそらく参考にされた過去スレは、2018年8月のこれ(『メールフォーム』 http://bbs.alicex.jp/support/242/ )かと思います。
過去スレにメールフォームのHTMLを書き込んだ「5」は私なのではっきり言えますが、この書き込み当時のメールボックス機能から今現在のメールボックス機能で、い つ の 間 に か ALICE+さん側の仕様変更が入っています。

独自タグを使わずに手書きHTMLで設置することの怖さはこの、「仕様変更についていけない」ことです……。

*◆◆独自タグを使う利点◆◆
* URLなどHTMLの書きミスが起こらない
* 一つの独自タグが閲覧環境によりPC・スマホ・ガラケーそれぞれに合わせて置換されるので、端末別に表示を振り分ける手間がほぼない
* ALICE+さんの仕様変更があっても、自動で対応してくれるので書き換えの必要なし
そして手書きHTMLの欠点は、上記恩恵がすべて無い、ということです……。

本来のメールボックス画面のソースを見てみたところ、PCとスマホでは若干HTMLが異なっていました。(違いはscriptの有無)
実機のガラケーがないため、ガラケーでのHTMLがどうなっているかは不明です。
スマホからなら、PC用のHTML(script付)のままでも普通に送信できましたが……。ガラケーは送信テストすら自分には不可能なので……多分送れるんじゃないかなぁとしか言えません。

なお、今回の問題と最も関わりある、仕様変更に関して。
これはもう、「仕様変更が起きたらその都度、自力で書き換えて対応」する以外ありません。
ただその仕様変更が、アナウンス無しで行われることも多く……。少なくともメールボックスのHTMLが変更になったというアナウンスを、自分は聞いていません。

ちなみに具体的にどこがどう変わったかというと、
*旧) <input type="submit" name="submit" value="送信" onclick="input_token();">
>新) <input type="submit" name="send" value="送信" onclick="input_token();">

送信ボタンの『 name="●●" 』が変わったようです。
他項目は旧HTMLが分からないので比較しようもないですが、とりあえず>>0の送信ボタンを『 name="submit" 』から上記のように『 name="send" 』にするだけでもメッセージの送信は行えました(Androidスマホ・winPC・iPad miniで確認)。

同問題でこのスレに辿り着く方もいるかと思うので、最新版メルフォHTMLも載せるだけ載せておきます。続く→
03/31 16:32
返信