Nasıl PHP ve JavaScript bir görüntü tıklanabilir yapmak ve düz bir dosya olarak depolanan bir sayacı artırmak için kullanabilir miyim?

3 Cevap php

Im bana bir görüntü atalım bir php / js script bulmak için çalışıyor ve tıklandığında, düz bir dosya sayısını artırmak ve bu dosyayı kaydedin.

Ben oy toplamını almak için dosya eklemek için biliyorum.

Bu fiş ve web siteme içine oynamaya bulmaya çalışırken deli gidiyor Im. Id ip günlüğü için seviyorum, ve / çıkış yenileme güncelleme şey serin bir solmaya. Ama bu noktada hasta temelleri razı.

Id MySQL kullanarak önlemek istiyorum, ama gerekirse ben onunla çalışabilirsiniz.

3 Cevap

En iyi bahis erişmek için jQuery AJAX desteği kullanın, ancak kullanıcı, dosyaya artış yazar URL çeşit yüklemektir. Eğer kapsamlı bir platform her türlü kullanıyorsanız, size veritabanı ile yapıyor düşünmelisiniz. Ancak, jQuery'nin $ kullanmak için yeterince basit olurdu. URL / increment_number.php? Image = whatever.jpg erişmek için () fonksiyonu olsun. Hiç bir veritabanı kullanmaya başlarsanız, sadece bir DB sorgu gerçekleştirmek için bu komut dosyasını değiştirmek gerekiyor. Sizin durum için, (optimize hiçbir şekilde olmuştur ya da herhangi bir güvenlik konuları sahiptir) bu gibi basit bir komut olurdu:

$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);

Ve sadece görüntü ile sayfada JS aşağıdaki bit var unutmayın:

$(document).ready(function(){
     $('img.incrementme').click(function(){
         $.get('/increment.php?'+$(this).attr('src'));
     });
);

Bu işe yaramayabilir bu yüzden bu kodu test değil, ama bunu yapmak olurdu ne ruhu var.

Bu gibi basit bir şey çalışmaz?

<?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);
?>

Eğer saklamak için dosyaların çok yaratıyor yığın taşması gibi bir oylama sistemi, bu yapıyorsanız bu bir bit bilgi hantal olmaya devam ediyor. Bu veritabanı için idealdir.

Bu şekilde, aynı zamanda dosyayı içerir, ancak toplam puan almak için bir sorgu gerçekleştirmek olmaz.