newdownload25.php (unico file)
Codice PHP:
<?php
// identificativo numerico della pagina word 2025
$pagina = 251;
$db_host = "localhost";
$db_user = "paolin";
$db_name = "my_paolin";
$db = new mysqli($db_host, $db_user, "", $db_name);
if ($db->connect_error) {
die("Errore nella connessione.");
}
// parametro pagina
$pagina = isset($_GET['pagina']) ? intval($_GET['pagina']) : 0;
// funzione per ottenere visite
function getVisite($db, $pagina) {
$stmt = $db->prepare("SELECT visite FROM contatore WHERE pagina = ?");
$stmt->bind_param("i", $pagina);
$stmt->execute();
$result = $stmt->get_result();
if ($result && $result->num_rows > 0) {
return $result->fetch_assoc()['visite'];
}
return 0;
}
// funzione per incrementare visite
function incrementaVisite($db, $pagina) {
$stmt = $db->prepare("UPDATE contatore SET visite = visite + 1 WHERE pagina = ?");
$stmt->bind_param("i", $pagina);
$stmt->execute();
if ($stmt->affected_rows === 0) {
$stmt = $db->prepare("INSERT INTO contatore (pagina, visite) VALUES (?, 1)");
$stmt->bind_param("i", $pagina);
$stmt->execute();
}
}
// ?? SE viene richiesto un file ? download
if (isset($_GET['file'])) {
$file = basename($_GET['file']); // sicurezza
$path = './files/' . $file;
// controlli file
if (!file_exists($path)) {
echo realpath($filename);
die("File non trovato");
}
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (!in_array($ext, ['zip', 'rar'])) {
die("Tipo file non consentito");
}
// incrementa contatore SOLO qui (download reale)
if ($pagina > 0) {
incrementaVisite($db, $pagina);
}
// headers download
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$file\"");
header("Content-Length: " . filesize($path));
readfile($path);
exit;
}
// ?? SE NON c'è file ? mostra visite
if ($pagina > 0) {
$visite = getVisite($db, $pagina);
echo "È stato scaricato " . $visite . " volte";
} else {
echo "Parametro pagina mancante.";
}
?>
l'altro link il secondo questi 2 file
download25.php (file 1 di 2)
Codice PHP:
<?php
// identificativo numerico della pagina word 2025
$pagina = 251;
$db_host = "localhost";
$db_user = "paolin";
$db_name = "my_paolin";
$db = new mysqli($db_host, $db_user, "", $db_name);
if ($db->connect_error) {
die("Errore nella connessione.");
}
// sanitize pagina
$pagina = isset($pagina) ? $pagina : 'default';
// UPDATE counter
$stmt = $db->prepare("UPDATE contatore SET visite = visite + 1 WHERE pagina = ?");
$stmt->bind_param("s", $pagina);
$stmt->execute();
if ($stmt->affected_rows === 0) {
$stmt = $db->prepare("INSERT INTO contatore (pagina, visite) VALUES (?, 1)");
$stmt->bind_param("s", $pagina);
$stmt->execute();
}
// get visits
$stmt = $db->prepare("SELECT visite FROM contatore WHERE pagina = ?");
$stmt->bind_param("s", $pagina);
$stmt->execute();
$result = $stmt->get_result();
$visite = $result->fetch_assoc();
// file handling
$file = basename($_GET['file']); // prevents directory traversal
$path = './files/' . $file;
if (!file_exists($path)) {
die("File non trovato");
}
// check extension safely
$allowed = ['zip', 'rar'];
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (!in_array($ext, $allowed)) {
die("Stai tentando di scaricare un file non scaricabile");
}
// download
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$file\"");
header("Content-Length: " . filesize($path));
readfile($path);
echo "La pagina è stata visitata " . $visite['visite'] . " volte";
?>
visualizzanumdownload25.php
Codice PHP:
<?php
// identificativo numerico della pagina word (prime 2 cifre sono l'anno)
$pagina = 251;
$db_host = "localhost";
$db_user = "paolin";
$db_name = "my_paolin";
$db = new mysqli($db_host, $db_user, "", $db_name);
if ($db->connect_error) {
die("Errore nella connessione.");
}
// prendi pagina da GET
$pagina_id = isset($_GET['pagina']) ? intval($_GET['pagina']) : 0;
// prepared statement (più sicuro)
$stmt = $db->prepare("SELECT visite FROM contatore WHERE pagina = ?");
$stmt->bind_param("i", $pagina_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result && $result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "È stato scaricato " . $row['visite'] . " volte";
} else {
echo "Nessun dato trovato per questa pagina.";
}
?>
il secondo link è questo https://paolin.altervista.org/db/dow...e=lunaio25.zip
paolin.altervista.org/db/download25.php?file=lunaio25.zip
grazie per l'aiuto