• ベストアンサー

24時間後に処理

とあるサイトで、24時間後に処理を実行できるプログラムは実現可能でしょうか? 24時間なので当然ブラウザを開いた状態ではなく、閉じても24時間後に処理が実行される仕組みはないでしょうか。

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

  • ベストアンサー
  • p_shinji
  • ベストアンサー率100% (1/1)
回答No.10

さくらサーバでは共有サーバの最安プランでもCRONが使用できるようなので、DBをチェックして24時間たった登録情報からメールを送信する処理のPHPを作成し、CRONで1分毎なり5分毎なりで実行すれば可能です。 ただし、負荷が高くなると運営会社から断られるかもしれません。

barusu0126
質問者

お礼

お礼が遅くなり申し訳ございません。 CRONを使用して無事に実行できました! こんな便利な機能があるとは知らなかったです。 ありがとうございました!

その他の回答 (9)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.9

見せかけでいいのなら一旦処理をDBに保存して 毎分あなたのPCから管理用サーバーを自動で起こすようにして サーバーでは24時間たってるデータを調べればいいのでは?

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.8

>formの送信で情報を受け取ったPHPがメール送信の処理をします。 >・・・ > 登録完了と利用可能のお知らせを兼ねたメールですので、 あいかわらず、form送信の意味が書かれていませんが・・・ それはともかく、つまり、form送信は関係なくて、24時間後にメールを自動送信させるのが目的なんですね? レンタルサーバーに、その機能が用意されてないなら、不可能です。 登録時に、「24時間以上後に、またきてください」と、しつこく通知するしかないでしょう。いい加減な気持ちで登録した人でない限り、必ず来てくれるはずです。

barusu0126
質問者

お礼

formのinput type=textにニックネーム等のユーザー情報を入力し、送信ボタンを押すことでactionのURLにあるPHPファイルにアクセスし、受け取った情報をDBに登録し、その会員専用のURLを記載したメールを送信します。 DB登録でいったん止め、管理画面を作成し、手動で任意の時間に登録させることはできますが、これを自動化したかったのですが、難しいようですね。 ありがとうございました!

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.7

>form送信後、登録完了のメールが即送信されるようになってますので、 >やはり24時間後にform送信を実現したいのです。 意味不明です。私の回答と何が違うのですか? そもそも、form送信とは何をすることなのですか? まさか、ユーザーのパソコンに強制的にFormを表示する、クラッキングのようなことを言っているのではないですよね。 メール送信との時間差が問題なら「24時間と言っているが、実は23時間55分でもOKにする」だけです。5分違うと問題が起きるような状況とは思えません。

barusu0126
質問者

補足

formの送信で情報を受け取ったPHPがメール送信の処理をします。 そのタイミングは情報を受け取った直後で変えることができません。 なので、ご回答いただいた方法だと24時間後にサービスの利用はという部分は解決なのですが、メール送信もアクセスしたタイミングになってしまわないでしょうか? 登録完了と利用可能のお知らせを兼ねたメールですので、24時間後に自動的に送信される方法が存在すれば教わりたいのです。 ややこしくて申し訳ございません。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.6

ユーザ側の処理ををタイムラグを持って、制御をしようとしても、電源を落としているとか、同一の人であっても違うPCを使用してアクセスするなどの可能性もあります。 登録の送信を24時間遅らせるのではなく、php側で既登録済の名簿と、仮登録の名簿を分けておくようにすれば良いのではないでしょうか? ログイン確認時に、仮登録名簿に登録された人の場合は24時間経過していたら、登録済み名簿に移動して処理を受付けることにすればよろしいかと思います。

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.5

>登録制のサイトを製作中なのですが、サイトのサービスを翌日以降から >利用できるようにしたいと考えています。 それなら、私が前に書いた方法で可能ですね。 CGIが使えないとなると、登録情報(登録日時)はCoockieで記録するしかないのですが、 利用者が、つぎにウェブを閲覧したとき、Coockieと現在時刻を比較して、24時間以上であれば使用可能にすればよいです。

barusu0126
質問者

補足

ご回答ありがとうございます。 説明不足で申し訳ございません。 form送信後、登録完了のメールが即送信されるようになってますので、やはり24時間後にform送信を実現したいのです。 登録完了後のロジックは諸事情でいじれないので、登録のタイミングをずらす方法があれば大喜びでございます。 Cookieを利用する方法は全く思いつきませんでした。 勉強になります。

回答No.4

No.2です。 回答ありがとうございました。 インフラはだいたい分かりました。 次に質問ですが、あなたがやりたいことの、手段じゃなくて目的はなんですか?

barusu0126
質問者

補足

登録制のサイトを製作中なのですが、サイトのサービスを翌日以降から利用できるようにしたいと考えています。 諸事情で、登録してしまうとすぐにサービスが利用できてしまうため、質問させていただいた内容が実現可能であれば使いたいと思っています。 翌日以降に登録完了は明記してあります。

回答No.3

実現可能だと思います。としか答えようがありません。 詳しく知りたい場合は、使用している環境を詳しく教えて下さい。

barusu0126
質問者

補足

ありがとうございます。 サーバーは「さくら」を使用しており、PHPは5.2.17でした。 スマートフォンを対象としており、PHPかjavascriptしか使用できないのですが可能でしょうか? 初心者なので、環境も何を答えれば良いのかわりません…

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.2

何をしたいのでしょうか? 普通、ウェブ上の処理では、「24時間後に何かをする」ではなく、「ブラウザを開いたとき24時間より後だったら何かをする」と考えれば、Javascript でも実現できます。

barusu0126
質問者

補足

24時間後にformを送信したいのですが、手段はないでしょうか?

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

ブラウザ拡張のウェブアプリとして配信するしかないですね

barusu0126
質問者

お礼

そういった手段しかないのですね。 ありがとうございました。

関連するQ&A

  • スマホのスリープ状態で処理が止まる

    javascriptで作った長時間のループ処理をスマホのブラウザ上で実行していると、途中でスマホが無操作状態のためスリープ状態になります。するとループ処理がそこで停止してしまい、スリープを解除したときに再開されるようです。 そこで質問ですが、ループ処理中には(強制的にでも)スリープ状態にならないようにする何か良い方法はありますでしょうか? スマホの設定を変更するなどではなく、あくまでもjavascriptのプログラムだけで実現できないでしょうか。

  • 一定時間が経過したら処理を行う.

    一定時間が経過したら、ある処理を行いたいです。 if(一定時間が経過したら){  // 処理 } 例えばこのプログラムを実行してから1日たったら というようにしようと考えています. どのような条件をつければよいでしょうか?

  • 時間がかかり過ぎたプロセスをキルする方法

    system関数を用いて、ループ内で外部プログラムを連続的に実行しています。ところが、時々、無限ループに近い状態に陥ってしまうデータがあるので、時間制限を設けて、その時間内に終了しない場合には、そのプロセス(外部プログラム)を強制終了させたいのです。 また、もし、強制終了させた場合には、それと分かるように戻り値を返してもらえると、なお良いです。 この仕組みを実現する手法、もしくは、モジュール等を教えて頂けないでしょうか。

    • ベストアンサー
    • Perl
  • 時間内処理のCプログラム

    今、LSIC86試食版でプログラムの練習をしています。 時間内処理についてですが、例えば、5秒間HELLOという文字を出力して、5秒後ENDを表示する といったプログラムの作り方をご存知の方いらっしゃらないでしょうか? 5回表示すると言うプログラムでしたらできますが、時間内処理の組み方がわからなくて困っています。 LSIC86番のコンパイラで実行したいので、教えてください。 よろしくお願いします。

  • ActionScriptのイベント処理で任意の時間遅らせて処理する方法

    こんばんは。 現在、Actionscript3.0にてFLASHコンテンツを制作しております。 あるイベント処理の際に、任意の秒数処理を遅らせて実行したいと考えております。 例えば、 1.ブラウザのサイズを任意にリサイズする  (addEventListener RESIZEイベント呼び出し) ↓ 2.変更したサイズに合わせてステージ上のオブジェクトが指定の位置に移動する  (オブジェクトの位置を移動させる処理の実行) 2の動きを、ブラウザリサイズ後、任意の秒数置いてから実行させたいと考えています。 例で言うと以下サイトでブラウザをリサイズした際に、後からオブジェクトが追従するような動きです。 http://www.duras.jp/ ご教授宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • リモートログインをしていろいろな処理をさせたい

    こんばんは、皆さん。 リモートデスクトップでサーバにログインをして、Officeなどのアプリケーションソフトを実行するという作業を自動化しようと考えています。 Windows Scripting Hostを使ってその処理をプログラムしようとしています。 プログラム内にあらかじめ接続先IPとログインID/パスワードを書いておき、アイコンをダブルクリックで実行するだけで接続してアプリケーションを実行させて目的の処理をさせたいです。 これを実現するにはどのようにしたらよいのでしょうか? よろしくお願いします。

  • VBで別のプログラムを起動し他の処理を中断したい

    VBプログラムの実行中に、shell("hoge.exe")で別のプログラムを起動しそのプログラムが終了すれば次の処理に移るという処理をしたいんですが、実現方法がわかりません。どうすればよいでしょうか?アドバイスよろしくお願いします。

  • アプリケーションソフトの処理時間について

    こんにちは。 XP上で数値計算をやっています。同一のプログラムの実行にも関わらず、計算させる度に処理時間にばらつきがあって、通常4時間程度かかる処理が4日もかかったりすることがあります。入力データの量もほとんど変わらず、基本的に全く同じ計算の繰り返しです。 自分の推測ですが、Windowsのアプリケーションに対する設定が悪さしてるのでは、と思ってます。 長時間の数値計算を実行させるとき、計算に影響が出るようなOSの要素として、どのようなものが考えられるでしょうか? なお、アプリケーションはmatlabで、スクリーンセーバーは切っています。 よろしくお願いします

  • Windowsで重い処理を実行したい

    CGIを作成している環境が Windows2000+IIS+ActivePerlで、時間がかかる処理を 行うプログラムを作成しています。 いろいろ調べて、alarm()とシグナルでブラウザタイムアウトを 防ぐ方法や、forkして子プロセスする方法などを、 試したのですが、うまくいかず、 よくよく調べてみるとWindows環境だと、alarmもforkも未実装らしく困り果てています。 IISでタイムアウト時間を延ばすのは避けたいです。 ブラウザのタイムアウトを回避しつつ、処理の長い CGIを実行するいい方法はないでしょうか?

    • ベストアンサー
    • Perl
  • 処理時間について

    今、仕事で既存の処理のレスポンス調査をしているのですが、 行き詰ってしまったので質問させていただきます。 本番環境とテスト環境で全く同じ処理を実行した所、テスト環境では 1分程度で処理が正常終了するのに本番環境だと 2時間経過しても処理が終わらず、なぜ同じ処理なのに本番環境と テスト環境で処理時間に違いがありすぎるのか分からず困っています。 処理としては25万件程あるデータ(テキストベース)を PL/SQLで読み込みTable_AにInsert または キーが同じデータが 存在しているならUpdateをし、 それと同時にトリガーで更新前と更新後の値を Log_TableにInsertします。 検証したときの手順としては、 (1)Table_AとLog_TableをCreate (2)トリガーのコンパイル (3)Table_Aのインデックスの作成 (4)PL/SQLのコンパイル (5)Table_AとLog_Tableの統計情報の取得 となっております。 ちなみに、テスト環境と本番環境の両方について、 実行されたSQLの実行計画を取得し比較したのですが、 同じ実行計画になっていました。 また、統計情報を取らずに処理を実行した場合は、テスト環境でも 2時間経過しても処理が終わりませんでした。

専門家に質問してみよう