Come posso utilizzare PHP e JavaScript per creare un'immagine cliccabile, e incrementare un contatore memorizzato come un file flat?

StackOverflow https://stackoverflow.com/questions/1123132

  •  13-09-2019
  •  | 
  •  

Domanda

Nel tentativo di trovare uno script php / js che mi permette di scattare una foto, e quando si fa clic, aumentare il numero in un file flat, e salvare il file.

So come includere il file per ottenere il totale di voto.

Im andando folle cercando di trovare questo a plug and play nel mio sito web. Id amore per avere la registrazione IP, e un fade fresco in / out di aggiornamento cosa aggiornamento. Ma a questo punto malato accontentarsi di nozioni di base.

Id come di evitare l'uso di MySQL, ma se necessario, posso lavorare con esso.

È stato utile?

Soluzione

La cosa migliore è quella di utilizzare il supporto AJAX in jQuery per l'accesso, ma non caricare per l'utente, un qualche tipo di URL che scrive l'incremento al file. Se si sta utilizzando qualsiasi tipo di una piattaforma completa, si dovrebbe considerare di fare nel con il database. Tuttavia, sarebbe abbastanza semplice da usare la funzione di jQuery $ .get () per accedere al /increment_number.php?image=whatever.jpg URL. Se mai iniziare a utilizzare un database, che ci resta che cambiare questo script per eseguire una query DB. Per il vostro caso, si avrebbe un semplice script come questo (che è stato in alcun modo ottimizzato o ha qualsiasi considerazioni di sicurezza di sorta):

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

E basta ricordarsi di avere il seguente pezzo di JS sulla pagina con l'immagine:

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

Non ho ancora testato questo codice in modo non potrebbe funzionare, ma è nello spirito di quello che avrebbe dovuto fare.

Altri suggerimenti

qualcosa di semplice come questo non funzionerà?

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

Se si sta facendo questo per un sistema di voto come Stack Overflow, la creazione di un sacco di file per memorizzare questo un bit di informazione sta per diventare ingombrante. Questo è perfetto per un database.

In questo modo, inoltre, non dovrebbe includere il file, ma eseguire una query per ottenere il punteggio totale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top