- ベストアンサー
24時間後に処理
とあるサイトで、24時間後に処理を実行できるプログラムは実現可能でしょうか? 24時間なので当然ブラウザを開いた状態ではなく、閉じても24時間後に処理が実行される仕組みはないでしょうか。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
さくらサーバでは共有サーバの最安プランでもCRONが使用できるようなので、DBをチェックして24時間たった登録情報からメールを送信する処理のPHPを作成し、CRONで1分毎なり5分毎なりで実行すれば可能です。 ただし、負荷が高くなると運営会社から断られるかもしれません。
その他の回答 (9)
- b0a0a
- ベストアンサー率49% (156/313)
見せかけでいいのなら一旦処理をDBに保存して 毎分あなたのPCから管理用サーバーを自動で起こすようにして サーバーでは24時間たってるデータを調べればいいのでは?
- foomufoomu
- ベストアンサー率36% (1018/2761)
>formの送信で情報を受け取ったPHPがメール送信の処理をします。 >・・・ > 登録完了と利用可能のお知らせを兼ねたメールですので、 あいかわらず、form送信の意味が書かれていませんが・・・ それはともかく、つまり、form送信は関係なくて、24時間後にメールを自動送信させるのが目的なんですね? レンタルサーバーに、その機能が用意されてないなら、不可能です。 登録時に、「24時間以上後に、またきてください」と、しつこく通知するしかないでしょう。いい加減な気持ちで登録した人でない限り、必ず来てくれるはずです。
お礼
formのinput type=textにニックネーム等のユーザー情報を入力し、送信ボタンを押すことでactionのURLにあるPHPファイルにアクセスし、受け取った情報をDBに登録し、その会員専用のURLを記載したメールを送信します。 DB登録でいったん止め、管理画面を作成し、手動で任意の時間に登録させることはできますが、これを自動化したかったのですが、難しいようですね。 ありがとうございました!
- foomufoomu
- ベストアンサー率36% (1018/2761)
>form送信後、登録完了のメールが即送信されるようになってますので、 >やはり24時間後にform送信を実現したいのです。 意味不明です。私の回答と何が違うのですか? そもそも、form送信とは何をすることなのですか? まさか、ユーザーのパソコンに強制的にFormを表示する、クラッキングのようなことを言っているのではないですよね。 メール送信との時間差が問題なら「24時間と言っているが、実は23時間55分でもOKにする」だけです。5分違うと問題が起きるような状況とは思えません。
補足
formの送信で情報を受け取ったPHPがメール送信の処理をします。 そのタイミングは情報を受け取った直後で変えることができません。 なので、ご回答いただいた方法だと24時間後にサービスの利用はという部分は解決なのですが、メール送信もアクセスしたタイミングになってしまわないでしょうか? 登録完了と利用可能のお知らせを兼ねたメールですので、24時間後に自動的に送信される方法が存在すれば教わりたいのです。 ややこしくて申し訳ございません。
- fujillin
- ベストアンサー率61% (1594/2576)
ユーザ側の処理ををタイムラグを持って、制御をしようとしても、電源を落としているとか、同一の人であっても違うPCを使用してアクセスするなどの可能性もあります。 登録の送信を24時間遅らせるのではなく、php側で既登録済の名簿と、仮登録の名簿を分けておくようにすれば良いのではないでしょうか? ログイン確認時に、仮登録名簿に登録された人の場合は24時間経過していたら、登録済み名簿に移動して処理を受付けることにすればよろしいかと思います。
- foomufoomu
- ベストアンサー率36% (1018/2761)
>登録制のサイトを製作中なのですが、サイトのサービスを翌日以降から >利用できるようにしたいと考えています。 それなら、私が前に書いた方法で可能ですね。 CGIが使えないとなると、登録情報(登録日時)はCoockieで記録するしかないのですが、 利用者が、つぎにウェブを閲覧したとき、Coockieと現在時刻を比較して、24時間以上であれば使用可能にすればよいです。
補足
ご回答ありがとうございます。 説明不足で申し訳ございません。 form送信後、登録完了のメールが即送信されるようになってますので、やはり24時間後にform送信を実現したいのです。 登録完了後のロジックは諸事情でいじれないので、登録のタイミングをずらす方法があれば大喜びでございます。 Cookieを利用する方法は全く思いつきませんでした。 勉強になります。
- SherlockHolmes2
- ベストアンサー率40% (175/429)
No.2です。 回答ありがとうございました。 インフラはだいたい分かりました。 次に質問ですが、あなたがやりたいことの、手段じゃなくて目的はなんですか?
補足
登録制のサイトを製作中なのですが、サイトのサービスを翌日以降から利用できるようにしたいと考えています。 諸事情で、登録してしまうとすぐにサービスが利用できてしまうため、質問させていただいた内容が実現可能であれば使いたいと思っています。 翌日以降に登録完了は明記してあります。
- SherlockHolmes2
- ベストアンサー率40% (175/429)
実現可能だと思います。としか答えようがありません。 詳しく知りたい場合は、使用している環境を詳しく教えて下さい。
補足
ありがとうございます。 サーバーは「さくら」を使用しており、PHPは5.2.17でした。 スマートフォンを対象としており、PHPかjavascriptしか使用できないのですが可能でしょうか? 初心者なので、環境も何を答えれば良いのかわりません…
- foomufoomu
- ベストアンサー率36% (1018/2761)
何をしたいのでしょうか? 普通、ウェブ上の処理では、「24時間後に何かをする」ではなく、「ブラウザを開いたとき24時間より後だったら何かをする」と考えれば、Javascript でも実現できます。
補足
24時間後にformを送信したいのですが、手段はないでしょうか?
- b0a0a
- ベストアンサー率49% (156/313)
ブラウザ拡張のウェブアプリとして配信するしかないですね
お礼
そういった手段しかないのですね。 ありがとうございました。
お礼
お礼が遅くなり申し訳ございません。 CRONを使用して無事に実行できました! こんな便利な機能があるとは知らなかったです。 ありがとうございました!