2016-11-17 53 views
1

對不起,如果這不明確,但生病盡我所能讓它儘可能清楚。使用PHP在3個不同時間提交表格

我心中已經有2個PHP文件,一個文件名爲「form.php的」其中有一個形式,另一種是所謂的「Submit.php」,這是形式的行動。

將有被稱爲場「多少次:」,它具有的選項(1,2,3),以及被稱爲「每個:」另一場具有的選項(1分鐘,3分鐘,5分鐘

的想法是,當用戶選擇(3次)和(5分鐘),表單將提交每5分鐘一次,當它完成提交3將停止倍。

cron工作的方式來做到這一點?如果是的話如何?

預先感謝您!

+1

使用AJAX和Javscript計時器。 –

+0

@JeremyHarris我不希望用戶坐在那裏15分鐘直到完成,我希望在服務器上發生一切。 –

+0

你有沒有考慮過使用http://gearman.org/? – Reto

回答

0

有幾個簡單的解決方案來解決您的問題。 最簡單的方法是使用一個cronjob和一個數據庫。

對於數據庫我推薦SQLite,它比mysql實現更快,因爲沒有設置和簡單的處理。

數據庫處理運行您的操作所需的所有數據,像:「多少次:」和「每個:」。 cronjob每分鐘運行一次,以檢查哪些表單需要發送。

當然的數據庫需要處理這個「額外」信息的工作:

  1. 標識的形式工作
  2. 信息保存在形式
  3. 計數器,以保持多少次表格已提交
  4. 表格狀態(如果它仍然活動或提交完成)

在最後你需要4個文件:

  1. form.php的」 - >收集信息,並將其發送 「Save.php
  2. Save.php」 - >接收信息,並將其保存到數據庫
  3. Check.php」 - >運行,每分鐘檢查哪些表格需要被髮送,並呼籲「send.php」爲需要發送各種形式。
  4. Send.php」 - >接收信息併發送。

所有這些都可以在一個單一的文件中完成,但它取決於你。

check.php發送信息到send.php,它是簡單的URL(用GET趕上他們),而不是使用POST方法發送表單數據。
最後,您必須添加cronjob以每分鐘調用文件「Check.php」通過控制面板或在命令行上手動設置cronjob只需設置一次。