2016-10-27 13 views
0

PHP ifステートメントをページをリロードせずにチェックしようとしています。 私はPHPで作られたダウンロードページを持っています----.co m/download.phpこのページには "Download"ボタンがあり、----.co m/file.zip ダウンロードページは何回ファイルがダウンロードされ、MySQLデータベースに記録されます。特定の数のファイルをダウンロードした後、PHPでcopy()を使用してファイルを新しいファイルに置き換えます。しかし、私は、ユーザーが次のことを実行するためにPHPのため----.coメートル/ download.phpを訪問する必要がありますする必要はありません:ページをリロードしないでPHP ifステートメントをチェックする方法

else if ($fileInfos->downloads > 35) { 
copy($newfile, file.zip) } 

ユーザーが直接ダウンロードリンク、データベースを訪問した場合ダウンロード番号を更新します。ユーザーがdownload.phpページにアクセスしなくても、上記のコードをPHPに実行させるにはどうすればよいですか?

+0

あなたはmysqlトリガを使用することができます。 – bassxzero

+0

申し訳ありませんが、あなたの問題が完全に不明です。あなたのPHPスクリプトは、ダウンロードを制御します。ファイルを転送することを決定した場合 - 細かい。ファイルを転送する前にファイルを置き換えることにした場合は、それも問題ありません。 _あなたが直面している問題は何ですか? – arkascha

+0

その「ダウンロード」のための物理ファイルへの静的リンクに頼ることができますか?それから、答えは:それをやめて!ダウンロードにはPHPルーティングスクリプトを使用してください。スクリプトは、ダウンロードが許可されている場合、まず何らかの前提条件と_decide_を評価することができます。そうであれば、要求されたファイルの内容が正しいヘッダと共に転送される。 – arkascha

答えて

0

できません。あなたのサーバーが許せば、あなたができることは、ファイルを置き換えるべきかどうかを断続的にチェックするcron-jobを実行することです。もちろん、ダウンロードページでもチェックを実行する必要があります(ユーザーがファイルをダウンロードすることを選択した場合、ユーザーに送信される前にファイルを置き換える必要があるかどうかがチェックされます)。

これが何回発生する必要があるかによっては、cron-jobが多すぎるかもしれませんが、もう一度毎分または5分のチェックを外すことができれば正常に動作します。

+0

申し訳ありませんが、これは真実ではありません。もちろん、必要なロジックをダウンロードして統合することもできます。考慮すべき唯一のことは、ダウンロードのためにいくつかの物理ファイルを直接指す静的URLを使用するのではなく、ルータスクリプトを使用することです。 – arkascha

+0

これは実行する必要がある複数のファイルがあり、〜30秒ごとにチェックする必要があります。 – Fetz

+0

@Arkascha - あなたは説明できますか? – Fetz

関連する問題