私は現在、私の Web サイト (コーディング経験が限られている) でシステムを整理しようとしていますが、そこには多くの参照がありません。
私は現在、PayPal IPN 統合 (テストされていません) を使用しており、それを使用してデータベースを更新し、ユーザーのアカウントに「時間」を与えています。また、アカウントには「停止/開始」機能があり、時間を停止および開始できます。これは、時間を「開始」するとカウントダウンが開始されるという考えです。逆に、それらが「停止」している間、カウントダウンはカウントダウンしません。アクティブなサブスクリプションを一時停止するのと似ていると思いますが、私のものは短期間です。
mysql_query("UPDATE `table` SET
`user_id`=$user_id,
`timeadded`=$timeadded,
`amountpaid`=$mc_gross,
`token`=$txnId,
`currtime`=TIMESTAMP()");
^ これは、mysql テーブルを更新するために使用しているスニペットです。
$new_time = date('H:i', strtotime('+$timeadded'));
これは、上記の開始/停止機能なしで終了日を計算できるようにするために現在取り組んでいるものです。ただし、ここからその機能を統合する方法については不明です。明らかに、現在の日付以外の変数に基づいて終了日を動的に変更する必要があるためです。
私はまたこれを参照しましたが、これは私を正しい道に導くかもしれないと思いますが、まだ成功していません.
//time when start clicked
$first = new DateTime
//time when stop clicked
$second = new DateTime
//when start is clicked
exec(mysql_query("UPDATE `newtable` SET `userid`=$userid, `start`= $first"));
//when stop is clicked
exec(mysql_query("UPDATE `newtable` SET `userid`=$userid, `end`= $second"));
//use array to select all entries from newtable where userid=$userid (can fill this in if wanted).
$elapsed = $first->diff( $second );
$timeleft = (strtotime($timeadded) - strtotime($elapsed));
$updateelapsed = mysql_query("UPDATE `newtable` SET `userid`=$userid, `elapsed`=$elapsed")
$allelapsed = mysql_query("SELECT * FROM newtable WHERE userid=$user_id");
$allelapsedarray = mysql_fetch_array($allelapsed);
$timeelapsed = array_sum($allelapsedarray);
//so now i have my total time spent "started", i should be able to compare that to the amount of time they bought. if its more than that, they are rejected, otherwise can continue as normal.
そのため、これまでのところ、開始/停止機能を含めることができました。これは、上記の 2 番目のリンクに出くわした後、その場で行われただけであり、最初の数段落で言及した潜在的な方法よりも実り多い方法だと感じています。
以下のコメントに - 開始/停止時間や経過時間列に関してデータベースを更新しません。これらのことを考えると、「時間」が必要な領域に人々がアクセスすることを妨げることはありませんが、上記がソートされるとそれが修正されると思います. 私が開発したこの方法も長ったらしいので、この一見単純なタスクをコーディングするはるかに簡単な方法を見落としている可能性があります。ヒントをお寄せいただきありがとうございます。