PHPプログラム上で「URLを直接叩く(GET出来る)コマンド」についての質問です。
「ファイルのタイムスタンプが過去24時間より新しかったらメールCGIを実行する」というphpを作ってみました。
しかしながら、実行すると、「Script timezone differs from ini-set timezone.1289040460128896920024時間以内なのでメール送信しました.」とスクリプトが実行(タイムスタンプも取得された)はずなのですが、肝心なメールが飛んできません。
下記のソースをご確認頂き、不味い点をご指摘いただけませんでしょうか?
尚、cgiそのものはhttp://hoge.com/test/form.cgi?&act=2をブラウザから直接URLで叩くと、メールが飛ぶようになっていますのでcgiの不具合ではありません。
宜しくお願い致します。
環境は、Cent OS Apache/2.2.3 php 5.1.6 です。
ソースは下記です。
<?php
date_default_timezone_set('Asia/Tokyo');
$script_tz = date_default_timezone_get();
if (strcmp($script_tz, ini_get('date.timezone'))){
echo 'Script timezone differs from ini-set timezone.';
} else {
echo 'Script timezone and ini-set timezone match.';
}
echo filemtime("./data/bbs.cgi");
echo strtotime ("yesterday");
//日付をstrtotime()で変換して比較します
if (filemtime("./data/bbs.cgi") > strtotime ("yesterday")) {
$command = `http://hoge.com/test/form.cgi?&act=2`;
echo '24時間以内なのでメール送信しました.';
}else{
exit( "PHPスクリプト終了!!" );
}
?>
試行錯誤的に、$command = `http://hoge.com/test/form.cgi?&act=2`;の部分を
echo $url = $_GET["http://hoge.com/test/form.cgi?&act=2"];とか
header('Location:http://hoge.com/test/form.cgi?&act=2')とかに変更してみましたが、やはり駄目でした。
$_GETについては、フォーム上で使うイメージがあり、上記のようなスクリプト内への記載方法が分かりません。宜しくお願い致します。
尚、yahoo知恵袋にも質問をしたのですが、知恵袋は質問のやり取りが出来ない仕様のため、解決に至らず一旦クローズドしてこちらでお聞きする次第です。ダブルで質問している訳ではございませんので宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
サーバのOSが何かわかりませんが、少なくとも '
http://hoge.com/test/form.cgi?&act=2' というコマンドは無いでしょう。
なので
$command = file_get_contents( 'http://hoge.com/test/form.cgi?&act=2' );
とか、サーバが wget コマンドを利用出来るのであれば
$command = `wget http://hoge.com/test/form.cgi?&act=2`;
など、HTTPリクエストを発行するようにしないとダメでしょうね。
また、PHPが動いているサーバとCGIが動いているサーバが、
NATされている同一ネットワーク内にあるサーバ同士の場合は、
内部のIPとかで通信しないとだめかもね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHP MySql ページング 2 2022/09/20 06:38
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
どういうプログラムを関数化を...
-
try~catch
-
サブネットマスクを用いたIP制...
-
ASPのResponse.WriteをPHPでは...
-
VB.NETSystem.Xml 要素数を得る...
-
VB.NETからVBAマクロ(引数)を呼...
-
classの再定義エラーについて
-
次のhtml・cssでspan内の文字を...
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
エクセルVBAにて同行内複数URL...
-
「取得先」という表現について
-
PHPでの接続数の取得について
-
POSTで受け渡したものを保存し...
-
ps3で久しぶりにCDの音楽情報取...
-
オブジェクトの中身の判定(PHP)
-
DTOとEntityの差は何ですか。
-
「ページネーション」で検索キ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
どういうプログラムを関数化を...
-
VB.NETからVBAマクロ(引数)を呼...
-
fwriteで改行出来ない
-
既存関数の上書き
-
vb作成したらでbeep音が鳴りま...
-
エラーの理由が分りません。Pri...
-
classの再定義エラーについて
-
PHPの名前空間インポートについて
-
可変変数にアロー演算子を使いたい
-
PHP、ヒアドキュメント内でのIF...
-
PHP Catchable fatal error の...
-
PHPでの画像の形式の変換
-
PHP5とPHP4の違い
-
次のhtml・cssでspan内の文字を...
-
[C++]std:mapの扱いを教えて頂...
-
【シェル】case文でワイルドカ...
-
[CakePHP] Paginatorのリンクが変
-
VB.NETSystem.Xml 要素数を得る...
-
PHPプログラム上で「URLを直接...
おすすめ情報