• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:続・指定した時間にPHPプログラムを実施)

指定した時間にPHPプログラムを実施する方法

このQ&Aのポイント
  • 指定した時間にPHPプログラムを実施する方法を教えてください。
  • DBに情報を管理し、CRONを使用して指定した時間にメール送信プログラムを実行します。
  • 日時条件とIDを組み合わせてメール送信のトリガーを設定する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

>'H-i-s H:i:00'の形に(snip) ユーザ側で時間を指定できる仕様であれば 年月日ごとにフォームを分け、PHP側で値を合成してあげると良いです。 [HTML側] <select name="yyyy">  <option value="2000">2000年</option> </select> <input type="text" name="mm" size=2 maxlength=2 /> (snip..) [PHP側] $ymd = sprintf( // ←この前にis_numeric()で検査したほうが良い  "%04d-%02d-%02d %02d:%02d:00"  ,$_POST["yyyy"]  ,$_POST["mm"]  ,$_POST["dd"]  ,$_POST["hh"]  ,$_POST["mi"] ); $sql .= "in sert into TABLE(id,sendtime) values(".$id.",".$ymd.")";

hokuhoku7
質問者

お礼

PHP側で値を合成とは、なるほどです。 うまく動作させることができました。 どうも、ありがとうございます。

その他の回答 (1)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

年月日をDBで持っているならfileを作る必要はないですよ。 内容が同じデータを分散させるのは良い方法ではありません。 それと、DBの日付はdatetime型で持たせたほうが良いかと。 日付のcolumnが sendtime datetime で定義されているとして、 [送信用PHP] (snip..) $now = date('H-i-s H:i:00'); $sql = "select word1,word2,word3 from mail_generator ";  . "where sendtime=to_date('".$now."', 'YYYY-MM-DD HH24:MI:SS')"; (snip..) こうすることでfileやidを意識することなく必要なデータのみとることが出来るかと。 // 800文字の壁は大きいなぁ・・・ 蛇足ですが、$_POSTの値を直接クエリに組み込むのは恐怖です。 せめてpg_escape_string()を噛ましましょう。 あと連想配列は$_POST["seireki"]す。{"seireki"}じゃないす。

hokuhoku7
質問者

お礼

なるほど、ご丁寧な回答ありがとうございます。 追加で申し訳ないのですが、DBのdatetimeにHTMLより値を変数に渡す場合の良い方法がありますでしょうか。 'H-i-s H:i:00'の形にして、テキストにてDBに挿入するしかない?でしょうか。 > $_POSTの値を直接クエリに組み込むのは恐怖です。 > せめてpg_escape_string()を噛ましましょう。 ありがとうございます。 インジェクション対策は充分に実施しておきます。 よろしくお願いいたします。