![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
初めまして。PHPのメールフォームを設置し
お試しをしてみたら、外部から利用はできません、と表示されます。
リファラのチェックをする、に設定しています。
(お借りした所ではこういう質問を受け付けてもらえないので
こちらでお伺いしております)
リファラの意味がわからず調べてみましたが、
「あるWebページのリンクをクリックして別のページに移動したときの、リンク元のページのこと。Webサーバのアクセスログに記録される項目の一つ。」
リファラとは 【referer】 - 意味・解説 : IT用語辞典
<http://e-words.jp/w/E383AAE38395E382A1E383A9.html>
とあり、自分のページからメールフォームにリンクしているのは
大丈夫なのではないかと思っていたのですが・・・
他にブラウザの設定やファイヤーウォールの設定も見てみましたが
リファラを消したりすることも無いようです。
本体?の中に、
if ($_SERVER['HTTP_REFERER'] != 'http://'.$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] && $refCheck) {
Err('外部から利用は出来ません');
と記載している箇所を見つけたので、http://の箇所に自分のアドレスを入れるのかと思い試してみましたがダメでした。
拙い説明でわかりづらいところばかりですが
おわかりになる方がおられましたら、対処法などお教え下さい。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
>本体?の中に、
>if ($_SERVER['HTTP_REFERER'] != 'http://'.$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] && $refCheck) {
>Err('外部から利用は出来ません');
>と記載している箇所を見つけたので
これは「外部からの利用ではないこと」つまり「メールフォームのリンク元ホームページと、メールフォームが同じサーバーに存在しているかどうか?」をチェックしようとしています。
なので、この判定は
外部にあるページからメールフォームにリンク⇒エラー
メールフォームと同じサーバーにあるページからメールフォームにリンク⇒OK
となる事を期待しています。
しかし、$_SERVER['REQUEST_URI']は「プラウザが要求したURL」、つまりメールフォームのURLですから、期待する動作はしません。
この判定文は期待通りには動かず「リンク元とリンク先が同一かどうか?」を判定しますから「常に違う」と言う結果になります。
つまり「リファラのチェックをする」に設定した場合、常に「外部から利用は出来ません」と言うエラーで終了します。
結論は「スクリプトがバグっているから、リファラのチェックをしないに設定して、外部から勝手に利用されるのを覚悟で使うか、外部からの利用をちゃんと制限してくれる、他のメールフォームに変える」です。
chie65536様
ご回答ありがとうございます。
スクリプトがおかしいので頑張ってもダメなんですね。
他のメールフォームを探してみます。
ありがとうございました。
No.3
- 回答日時:
お使いのセキュリティソフトがリファラをカットしてるんじゃないでしょうか(ノートンはデフォルトでリファラをカットしてた記憶があります)。
メールフォームのファイル名はわかりませんが例えばmail.phpからmail.phpを呼び出せば問題ないはずです
php504様
こんばんは。ご回答ありがとうございます。
ノートンは使用しておりませんが、セキュリティソフトの設定を
確認しましたが、遮断をしておりませんでした。
スクリプトからスクリプトを呼び出す・・・
どこをいじればよいのかわかりません。
別のスクリプト探します・・・
ありがとうございました。
No.1
- 回答日時:
こんにちは。
おそらく対処法としては、一度リファラ機能を無効にしてきちんと動作するか確認してみては如何でしょうか?
それできちんと動作するようであればリファラが違うとのことですのでその設定が違うかもしれません。自分のURLを入力する項目やリファラの設定などはありましたか?同じサーバー&ドメインのサイト内の話で間違いないですよね?
この回答への補足
jaga999様
ご回答ありがとうございます。
さきほど、リファラ機能を無効にして試してみましたら
ちゃんと動作いたしました。
自分のURLを入力する項目やリファラの設定などは、
リファラ機能を有効か無効の設定しかありません。
同じサーバー&ドメインです。
リファラは完全ではないにしろ有効にしておく方が
安心だと思いましたので困っております。
どうしてもダメでしたら無効にして使用するしかないのでしょうね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- 大学受験 資格試験などの勉強で過去問題集の解説を理解する時、分からない用語を調べてどうするのが良いですか? 問 3 2023/06/18 17:18
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- その他(パソコン・スマホ・電化製品) Webページ印刷時にヘッダー・フッターをつけたい 1 2022/04/25 21:35
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- 日本語 〈場所を示す「に」と「で」〉 という誤り 36 2022/11/12 15:04
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- その他(クラウドサービス・オンラインストレージ) firestorage_androidスマホでダウンロードできない 1 2022/10/25 08:18
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
存在しないメールアドレスかど...
-
SendMailがエラーを返さない
-
AccessのDBシステムからの自...
-
Bookを閉じて保存した時のみ実...
-
onedrive にexcelファイルをア...
-
バッチを用いたフォルダの自動移動
-
MIB取得について
-
csvファイルの読込みとソート
-
$_SESSION 有効期限をブラウザ...
-
one drive のアップロード失敗...
-
PHPのif文でその処理を途中で抜...
-
VBSの「MsgBox」について
-
URLの変わらないページをPHPで...
-
imgタグでのphpの呼び出しについて
-
$_SERVER と $_ENV の違い
-
HYのAM11:00のラップの部分の歌...
-
phpでクラスのメソッドで同名の...
-
LinuxでのPHP、Configure Comma...
-
FTPでのファイルとディレクトリ...
-
絶対パス?絶対アドレス?意味...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6にてメールを送信する方法
-
存在しないメールアドレスかど...
-
AccessのDoCmd.SendObjectについて
-
VBでメールを送る時のSMT...
-
phpのmb_send_mailが迷惑メール...
-
Bookを閉じて保存した時のみ実...
-
コマンドプロンプトで添付ファ...
-
メールアドレスの存在確認はで...
-
Windowsサーバーでメール送信プ...
-
submitボタンの二重送信について
-
ループの中で mailItemObj.Disp...
-
powerbuilderのメール機能について
-
空メールの作り方教えて欲しい...
-
MAPI コンポーネントを使ったメ...
-
【エクセルVBA】メール送信前に...
-
★エクセルVBAでOutlookのメール...
-
SMTPサーバの指定なしでメ...
-
phpでメールを送信
-
メールアドレスを追加して、他...
-
【PHPでメルマガ配信したい!】...
おすすめ情報