どのように私は画像をクリック可能にする、フラットファイルとして格納されたカウンタをインクリメントするためにPHPとJavaScriptを使用することができますか?
-
13-09-2019 - |
質問
イム私は画像を見てみましょう、とクリックしたときに、フラット・ファイル内の数を増やし、そのファイルが保存されますPHP / JSスクリプトを見つけようとします。
私は投票の合計を取得するためにファイルをインクルードする方法を知っています。
イムは、このプラグインと私のウェブサイトにプレイするために見つけようとして非常識だろう。 IdはIPロギング、および/アウトリフレッシュ更新の事でクールなフェードを持っているのが大好き。しかし、病気、この時点で基本のために解決します。
IDは、MySQLを使用しないように好きですが、その必要があれば私はそれを扱うことができます。
解決
あなたの最善の策は、アクセスにjQueryのAJAXでのサポートを使用していますが、ユーザー、ファイルへのインクリメントを書き込みURLのいくつかの種類にロードされないことです。あなたが徹底的にプラットフォームのいずれかの種類を使用している場合は、データベースで行うことを検討すべきです。しかし、それはURLの/increment_number.php?image=whatever.jpgにアクセスするためにjQueryの$に.get()関数を使用するのに十分な単純なものだろう。あなたはデータベースを使用して起動する場合は、あなただけのDBクエリを実行するには、このスクリプトを変更する必要があると思います。
:あなたのケースのために、あなたは(決していかなるセキュリティ上の考慮事項を最適化したり持ちになっている)、このような単純なスクリプトを持っていると思います$image = $_GET['image'];
$number = file_get_contents('tracker_for_{$image}.txt');
if ($number != ''){
$number = (int) $number + 1
}
$file = fopen('tracker_for_{$image}.txt', 'w');
fwrite($file, $number);
fclose($file);
そして、ちょうど画像のページ上のJSの以下のビットを持っていることを忘れないでください
$(document).ready(function(){
$('img.incrementme').click(function(){
$.get('/increment.php?'+$(this).attr('src'));
});
);
それが動作しない場合がありますので、私はこのコードをテストしていませんが、それはあなたがしなければならないだろう何の精神でいます。
他のヒント
このような単純なものは動作しませんか?
<?php
// Link to this file: <a href='onclick.php'><img src='yourimg'></a>
$count = file_get_contents("count.file");
$count += 1;
file_put_contents("count.file", $count);
// Possibly log an IP too? open a file
$f = fopen("ipaddresses.file", "a");
fwrite($f, $_SERVER["REMOTE_ADDR"] . "\n");
fclose($f);
?>
あなたは、スタックオーバーフローのような投票システムのためにこれをやって情報のこの1ビットを格納するファイルの多くを作成している場合は、手に負えなくなるとしています。これは、データベースに最適です。
そのように、あなたはまた、ファイルが含まれていますが、合計スコアを取得するためのクエリを実行しません。