如何使用PHP和JavaScript使图像可点击,并增加存储为平面文件的计数器?

如何使用PHP和JavaScript使图像可点击,并增加存储为平面文件的计数器?,php,javascript,vote,Php,Javascript,Vote,我试图找到一个php/js脚本,可以让我拍摄一张图片,点击后,增加一个平面文件中的数字,并保存该文件 我知道如何包含该文件以获得总投票数 我要疯了,试图找到这个插件和我的网站。我喜欢有ip日志记录,和一个很酷的淡入淡出刷新更新的东西。但在这一点上,我会满足于基本要求 我想避免使用MySQL,但如果有必要,我可以使用它。如果你是为像Stack Overflow这样的投票系统这样做的,那么创建大量文件来存储这一点信息将变得很麻烦。这是一个完美的数据库 这样,您也不会包含该文件,而是执行查询以获得总分

我试图找到一个php/js脚本,可以让我拍摄一张图片,点击后,增加一个平面文件中的数字,并保存该文件

我知道如何包含该文件以获得总投票数

我要疯了,试图找到这个插件和我的网站。我喜欢有ip日志记录,和一个很酷的淡入淡出刷新更新的东西。但在这一点上,我会满足于基本要求


我想避免使用MySQL,但如果有必要,我可以使用它。

如果你是为像Stack Overflow这样的投票系统这样做的,那么创建大量文件来存储这一点信息将变得很麻烦。这是一个完美的数据库


这样,您也不会包含该文件,而是执行查询以获得总分。

如果您对Stack Overflow这样的投票系统执行此操作,那么创建大量文件来存储这一位信息将变得非常困难。这是一个完美的数据库


这样,您也不会包含该文件,而是执行一个查询以获得总分。

像这样简单的操作是行不通的吗

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

像这样简单的事情是行不通的吗

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

最好的办法是使用jQuery中的AJAX支持来访问(而不是向用户加载)某种将增量写入文件的URL。如果你使用任何一种彻底的平台,你应该考虑在你的数据库中做。但是,使用jQuery的$.get()函数访问URL/increment_number.php?image=where.jpg就足够简单了。如果开始使用数据库,只需更改此脚本即可执行DB查询。对于您的情况,您应该有这样一个简单的脚本(它没有经过任何优化,也没有任何安全考虑):

只需记住在带有图像的页面上有以下几点JS:

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

我还没有测试过这段代码,所以它可能不起作用,但它符合您必须要做的事情的精神。

您最好使用jQuery中的AJAX支持来访问(而不是加载到用户)某种将增量写入文件的URL。如果你使用任何一种彻底的平台,你应该考虑在你的数据库中做。但是,使用jQuery的$.get()函数访问URL/increment_number.php?image=where.jpg就足够简单了。如果开始使用数据库,只需更改此脚本即可执行DB查询。对于您的情况,您应该有这样一个简单的脚本(它没有经过任何优化,也没有任何安全考虑):

只需记住在带有图像的页面上有以下几点JS:

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

我还没有测试过这段代码,所以它可能不起作用,但它符合您必须要做的事情的精神。

SQlite是数据库和平面文件之间的一个很好的折衷方案,对于这样的任务。SQlite是数据库和平面文件之间的一个很好的折衷方案,对于这样的任务。