Mettere "I più visti" nel sito

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Questo codice permette di mettere nel proprio sito le pagine più visitate dagli utenti (non da te), naturalmente ci vuole un database con 3 records. I css non sono inclusi.

Crea un database col nome che vuoi e una tabella di nome visitate con 3 records: pagina, url e visite, come da allegato. Come vedi il record "pagina" ha la chiave primaria.



Crea un file e chiamalo visitate.php e mettici questo:
PHP:
<?php
//Mette i dati nel DB e aumenta il contatore ad ogni visita
function contatore($title) {*
if (empty($_COOKIE["contavisite"])) { //Richiama il cookie che c'è in cookie.php
$continua = false;*
if (isset($_SERVER['HTTP_REFERER']) != "") {
$from = parse_url($_SERVER['HTTP_REFERER']);
$from = $from['host'];
}
else {
$from = "";
}
$whitelist = array(
/*Qui scrivi l'url del sito in modo che quando l'utente vi arriva DA TERZI, anche se digita con le pagine, il contatore non sale.
Se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale*/
"www.miosito.it", //Scrivi gli url senza http://
"miosito.it" 
);
foreach ($whitelist as $sito) {
if ($from == $sito) $continua = true;
}
if ($continua) {
$mysqli = new mysqli("localhost", "root", "pwd", "my_gruppoalveo"); 
$url = $_SERVER['PHP_SELF'];
$esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
if ($esiste->num_rows == 0) {*
$mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
}
else {
$old = $esiste->fetch_array(MYSQLI_ASSOC); 
$visite = $old['visite'] + 1;
$mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
}
}
} 
}
//Estrae i dati dal DB e crea la sequenza delle pagine più viste 
function piu_visitate($n) {
$mysqli = new mysqli("localhost", "root", "pwd", "my_gruppoalveo"); 
$pag_viste = $mysqli->query("SELECT * FROM visitate ORDER BY visite DESC LIMIT 0,$n");
if ($pag_viste->num_rows > 0) {
echo "<ol class=\"formol\"'piu_visitate'>";
while ($link = $pag_viste->fetch_array(MYSQLI_ASSOC)) { 
echo "<div style=\"margin-bottom:-10px; font-size:10px; color:#c4c4c4;\">".$link["visite"]." volte</div>"; 
echo "<li><a class=\"visti\" href='".$link['url']."'>".$link['pagina']."</a></li>";
 }
echo "</ol>";
}
}
piu_visitate(5); //Metti il numero di pagine che vuoi venga visualizzato nella classifica
?>

Come avrai visto sopra, c'è anche un cookie "contavisite", questo farà in modo che se sei TU a cliccare sulle pagine del tuo sito, il conteggio non sale. Questo sotto è il file cookie.php, metti anche questo nella cartella del sito e caricalo online.
Poi ci devi entrare digitando l'url miosito.it/cookie.php (il nome della tua home, ovviamente). In questo modo tutte le pagine del tuo sito si registrano nel cookie.

PHP:
<?php
/*Salva il cookie nei miei browsers (Safari, FF e Chrome) MA NON NELLA CACHE, perciò anche se la vuoto il cookie rimane.
Quando IO visito le pagine del mio sito, questo cookie non fa salire il contatore, va messo in questo file INDIPENDENTE. Il richiamo si trova in visitate.php

Alla scadenza del cookie bisogna entrare nei browsers e digitare: www.miosito.it/cookie.php e aggiornare la pag., il cookie si reinstallerà.*/

setcookie("contavisite","valore", time()+157680000,"/","miosito.it"); //Dura 5 anni
?>


Questo mettilo nella pagina dove vuoi venga visualizzato il contatore.
PHP:
<div class="info">I più visti</div>
<?php
include("visitate.php"); 
?>
</div>


Questo mettilo in fondo ad ogni pagina che vuoi venga conteggiata nel database, naturalmente devono anche esserci i parametri di connessione.
PHP:
...
<?php
//Richiama la funzione che c'è in visitate.php, va messo qui
contatore("Nome che vuoi");
?>
</body>
</html>


A video appare così (in base ai miei css), e si aggiorna da sola la classifica ed il numero di visite.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
Shyson Mettere nel sito "I più visti" PHP 9
Shyson Mettere più valori in una variabile PHP 1
R Mettere in sicurezza una comunicazione .NET Framework 0
G Mettere il footer in basso HTML e CSS 0
G mettere account posta in Microsoft outlook 2016 di gmail Posta Elettronica 0
B Mettere sito offline senza troppe penalizzazioni SEO e Posizionamento 0
G [HTML] mettere link in facebook link invece che su sito web Social Media Marketing 2
G [Guida MyBB 1.8] Mettere in colonna SubForum CMS (Content Management System) 0
G [Photoshop] Mettere una scritta in prospettiva. Photoshop 7
Shyson [PHP] Mettere parentesi graffe o no? PHP 2
Shyson [PHP] Mettere placeholder PHP 2
Shyson [HTML] Mettere select responsive HTML e CSS 3
giannit [HTML] Mettere div al posto di iframe e possibile? HTML e CSS 9
D cambio il dominio per mettere keyword dentro? SEO e Posizionamento 8
G [HTML] mettere menu style smartphone anche sui tablet HTML e CSS 0
Shyson [PHP] Mettere il link "Leggi tutto" PHP 0
L mettere un simbolo per capire se è un sottomenu jQuery 2
Shyson [WordPress] Mettere un limite a lunghezza caratteri WordPress 11
Shyson [WordPress] Mettere classe css WordPress 0
Shyson Mettere span davanti a php PHP 9
F [VENDO] Inviti a mettere mi piace alla vostra pagina facebook! Annunci servizi di Social Media Marketing 10
Shyson Mettere contaviste ai miei articoli PHP 1
A Come mettere il target _blank in un parser xml in php? PHP 1
A Come mettere al sicuro un Cloud Server? Cloud Computing e Cloud Server 1
Shyson Mettere spazio a codice PHP 3
A Miglior hosting per mettere su internet un sito HTML? Hosting 3
A posso mettere i miei contenuti di un sito usa in un sito in australia SEO e Posizionamento 2
P mettere al centro i bottoni HTML e CSS 10
V Quando mettere il JOIN e quando no? MySQL 1
I Vendo 32.000 Inviti a mettere mi piace alle pagine/Invito Eventi Annunci servizi di Social Media Marketing 0
R Mettere la possibilità di Salvare in un gioco =) Come si fa? Java 2
C è illegale mettere sul proprio portfolio online i siti fatti sotto contratto? Discussioni Varie 5
max_400 Hosting gratuito dove mettere giochi in flash Hosting 2
M Mettere un'immagine come header HTML e CSS 1
Shyson Mettere css jQuery 1
E Mettere come Selected l'opzione di un select option, tramite il dato di una query. Javascript 2
A consiglio su come mettere in evidenza un contenuto Webdesign e Grafica 0
Shyson Mettere target="_top" PHP 0
Mauro Guardiani chi sa dove mettere questo codice Tubular jQuery plugin Javascript 1
Shyson Mettere script nel Database PHP 0
S Come mettere Menu a tendina in un modello CSS? HTML e CSS 0
F mettere online foto di persone, si può? Leggi, Normative e Fisco 2
Shyson Mettere alt e title in immagine nel css HTML e CSS 2
Shyson Mettere hover a css in linea HTML e CSS 1
Shyson Mettere immagine per chiudere popup HTML e CSS 1
P Mettere in una riga i record di una colonna MySQL 0
Shyson Mettere url collegato al radio HTML e CSS 20
Shyson Mettere nella home musica sottofondo Javascript 15
M Mettere in evidenza la voce del menu cliccata...Help, please...!!! Javascript 8
N mettere MUSICA sul sito (Html) HTML e CSS 1

Discussioni simili