-
modificare uno script
ciao a tutti spero potete aiutarmi
nel mio sito esattamente qui http://sandy.altervista.org/template/arancioni.php
ho inserito uno script x il conteggio dei download, questo script non si appoggia su database MySQL si limita a modificare i txt contenuti dentro ad una cartella, ora, dato che volevo inserire pure un tasto di votazione, ma non sono quasi per nulla pratica di php, il mio intento era quello di modificare lo script già esistente ossia http://sandy.altervista.org/getfile.php e riadattarlo al tasto vota. solo che lo script esistente si appoggia su un file .rar che sarebbe quello che si va a scaricare, ma non so in caso di una semplice votazione dove far appoggiare il tutto ...
spero che ci abbiate capito qualcosa e potete aiutarmi
-
Spiegati meglio, vuoi che il contatore aumenti quando premi il tasto vota invece di quando scarichi il file?
Se e cosi perché non posti il codice da modificare?
-
si esatto ma nn so cosa devo modificare
il codice inserito nella pagina php è
Codice PHP:
<td><br /><br /><br /><br /><a href="getfile.php?<?php echo "name=3dcat"; ?>"><div class="Block-body">
<div class="BlockHeader">
<div class="BlockHeader-text">
Scarica
</div>
<div class="l"></div>
<div class="r"><div></div></div>
</div></a>(download <?php @include("count/3dcat.txt"); ?>, size <?php
$dim = @filesize ("3dcat.rar") / 1024;
$dim = round($dim);
echo "$dim KB";
?>)</td>
ma oltre a quello va modificato tutto il file getfile.php ossia:
Codice PHP:
<?php
//estensione dei file da scaricare
$ext = ".rar";
//nome directory con i file di testo, compreso lo slash / finale
$counterdir = "count/";
//controllo che nell'url ci sia il nome del file da scaricare,
if(isset($_GET['name']) && trim($_GET['name'])) {
//se il file richiesto esiste, avviene il download
if (file_exists("$_GET[name]$ext")) {
header("Location: $_GET[name]$ext");
//apro il file .txt relativo al download richiesto e lo incremento di 1
$file = @fopen("$counterdir/$_GET[name].txt","r");
$count = @fread($file, 100);
$countplus = ($count + 1);
@fclose($file);
$fileb = @fopen("$counterdir/$_GET[name].txt","w");
@fwrite($fileb, $countplus, 100);
@fclose($fileb);
//altrimenti, se il file richiesto non esiste, parte l'email di avviso al webmaster e stampo un messaggio di errore
} else {
$_GET['name'] = str_replace(">", ">", $_GET['name']);
$_GET['name'] = str_replace("<", "<", $_GET['name']);
$today = date("j F Y G:i");
$user_ip = "$_SERVER[REMOTE_ADDR]";
$to = "tuaemail@tuosito.xx";
$subject = "Download non trovato";
$body = "$user_ip il giorno $today non ha trovato il file $_GET[name]$ext";
@mail("$to","$subject","$body");
echo "Il file $_GET[name]$ext non è disponibile per il download.<br>
Riprova più tardi.";
}
//altrimenti, se il nome del file non è passato via get, redirect alla pagina principale
} else {
header("Location: index.php");
}
?>
ed io nn so cosa modificare in tutto questo :(
ho provato a sostituire i riferimenti alla cartella count mettendo la cartella voti ma nulla...
non funziona ed io nn so cosa fare
-
Per prima cosa dovresti modificare il fire getfile.php in questo modo:
Codice PHP:
<?php
//estensione dei file da scaricare
$ext = ".rar";
//nome directory con i file di testo, compreso lo slash / finale
$counterdir = "count/";
//controllo che nell'url ci sia il nome del file da scaricare,
if(isset($_GET['name']) && trim($_GET['name'])) {
//se il file richiesto esiste, avviene il download
if (file_exists("$_GET[name]$ext")) {
header("Location: $_GET[name]$ext");
//altrimenti, se il file richiesto non esiste, parte l'email di avviso al webmaster e stampo un messaggio di errore
} else {
$_GET['name'] = str_replace(">", ">", $_GET['name']);
$_GET['name'] = str_replace("<", "<", $_GET['name']);
$today = date("j F Y G:i");
$user_ip = "$_SERVER[REMOTE_ADDR]";
$to = "tuaemail@tuosito.xx";
$subject = "Download non trovato";
$body = "$user_ip il giorno $today non ha trovato il file $_GET[name]$ext";
@mail("$to","$subject","$body");
echo "Il file $_GET[name]$ext non è disponibile per il download.<br>
Riprova più tardi.";
}
//altrimenti, se il nome del file non è passato via get, redirect alla pagina principale
} else {
header("Location: index.php");
}
?>
Non so se cosi funziona, ma in pratica ho tolto solamente la parte di codice che contava quante volte quel file era stato scaricato.
Oltre a questo nel file principale io aggiungerei un modulo con il pulsante vota:
Codice PHP:
<td><br /><br /><br /><br /><a href="getfile.php?<?php echo "name=3dcat"; ?>"><div class="Block-body">
<div class="BlockHeader">
<div class="BlockHeader-text">
Scarica <form action="vota.php" method="POST"><button type="submit">Vota</button></form>
</div>
<div class="l"></div>
<div class="r"><div></div></div>
</div></a>(download <?php @include("count/3dcat.txt"); ?>, size <?php
$dim = @filesize ("3dcat.rar") / 1024;
$dim = round($dim);
echo "$dim KB";
?>)</td>
E creare nella stessa directory il file vota.php con la parte di codice tolta allo script getfile.php e se non vuoi far si che l'utente rimanga in quella pagina potresti aggiungere in fondo un link che torna alla pagina precedente
Se desideri potresti migliorare lo script negando il vota all'utenza che ha già votato.