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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htaccessのリダイレクトについて
-
可変変数にアロー演算子を使いたい
-
PHP、ヒアドキュメント内でのIF...
-
.htaccessについて
-
VBA コレクションに2次元配列...
-
protectedなのにアクセスできな...
-
関数内関数から関数外関数を呼...
-
number_formatが勝手に四捨五入
-
【シェル】case文でワイルドカ...
-
VB.NETSystem.Xml 要素数を得る...
-
vb作成したらでbeep音が鳴りま...
-
Dosブロンプトでtabを出力したい
-
DTOとEntityの差は何ですか。
-
Yahoo! JAPAN IDを新規取得でき...
-
wordの差し込み印刷で文字...
-
バッチファイルでpingの結果を...
-
PHP の cURL で、htmlを画像へ...
-
【C#】DataGridViewの最大列数...
-
switch()文で値の大小比較
-
ログイン画面をはさんだ後、自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
VB.NETからVBAマクロ(引数)を呼...
-
classの再定義エラーについて
-
VB6のコンボボックスのテキスト...
-
可変変数にアロー演算子を使いたい
-
PHPでの画像の形式の変換
-
VB.NETSystem.Xml 要素数を得る...
-
protectedなのにアクセスできな...
-
issetで変数の存在をチェックし...
-
vb作成したらでbeep音が鳴りま...
-
エラーの理由が分りません。Pri...
-
どういうプログラムを関数化を...
-
PHPの名前空間インポートについて
-
PHP、ヒアドキュメント内でのIF...
-
関数から関数を呼び出したとき...
-
protectedなのにアクセスできな...
-
PHPプログラム上で「URLを直接...
-
関数の動きと記述方法の意味を...
-
PHPの変数値をリンクさせたい
-
htmlで変数の表示
おすすめ情報