Как я могу использовать PHP и JavaScript, чтобы сделать изображение кликабельным, и увеличить счетчик, сохраненный как плоский файл? - PullRequest
1 голос
/ 14 июля 2009

Я пытаюсь найти скрипт php / js, который позволит мне сделать снимок, а при нажатии увеличить число в плоском файле и сохранить его.

Я знаю, как включить файл, чтобы получить общее количество голосов.

Я схожу с ума, пытаясь найти это, чтобы подключить и играть на моем сайте. Мне бы хотелось иметь ip-логи и классное обновление с постепенным обновлением. Но в этот момент плохо соглашаться на основы.

Я бы хотел не использовать MySQL, но при необходимости могу работать с ним.

Ответы [ 3 ]

4 голосов
/ 14 июля 2009

Лучше всего использовать поддержку AJAX в jQuery для доступа, но не для загрузки пользователю, какого-то URL-адреса, который записывает приращение в файл. Если вы используете какую-либо основательную платформу, вам следует рассмотреть возможность использования вашей базы данных. Однако было бы достаточно просто использовать функцию $ .get () jQuery для доступа к URL /increment_number.php?image=whwhat.jpg. Если вы когда-нибудь начнете использовать базу данных, вам просто нужно изменить этот скрипт для выполнения запроса к БД. В вашем случае у вас был бы такой простой скрипт (который никоим образом не был оптимизирован или имел какие-либо соображения безопасности):

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

Я не тестировал этот код, поэтому он может не работать, но он соответствует духу того, что вам нужно сделать.

3 голосов
/ 14 июля 2009

Что-то простое, как это не будет работать?

<?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);
?>
2 голосов
/ 14 июля 2009

Если вы делаете это для системы голосования, такой как переполнение стека, создание большого количества файлов для хранения этой информации будет громоздким. Это идеально подходит для базы данных.

Таким образом, вы также не включите файл, но выполните запрос, чтобы получить общий балл.

...