Pagina 1 di 10

Impedire il conteggio delle visite da parte dell'admin

Inviato: 24/05/2016, 3:24
da frank
Avendo finalmente creato un contavisite per le pagine personalizzate, ora ho la necessità di impedire a me stesso (admin) di far conteggiare le visite. Sicuramente bisogna creare un codice che blocca il counter quando intercetta il mio ID.

Codice: Seleziona tutto

...
//Contavisite, connessione al database
$link = mysql_connect($dbhost, $dbuser, $dbpasswd);
if (!$link) {
	die ("Non riesco a connettermi:" . mysql_error());
}
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database:" . mysql_error());
}

// Identificativo numerico della pagina 
$pagina = 1; 

// Aggiorna il contatore  
mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina = $pagina"); 

// Inserisce i dati nel db e sovrascrive il numero-visite precedente
if (mysql_affected_rows() == 0) {
    mysql_query("INSERT INTO phpbb_contatore (pagina, visite) VALUES ($pagina, 1)"); 
}  

// Estrae i dati dal DB 
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina"); 
$visite = mysql_fetch_assoc($res);  

// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],
)); 

// Include il file php che contiene tutti i contatori per il file articoliX.html. VA MESSO QUI
include($phpbb_root_path . '*a-contatori.' . $phpEx);

page_footer();
?>

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 24/05/2016, 8:36
da Micogian

Codice: Seleziona tutto

if($user->data['user_id'] <> xx )
{
// Aggiorna il contatore 
mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina = $pagina");
}
Ovviamente al posto di xx metti il tuo user_id.

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 24/05/2016, 10:06
da frank
Grazie :-D

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 25/05/2016, 2:07
da frank
Quello che non capisco è per quale motivo accetta solo identificativo numerico pagina anche se nella tabella metto varchar.

Codice: Seleziona tutto

// Identificativo numerico della pagina 
$pagina = 24; 

if($user->data['user_id'] <> 24 ) {
// Aggiorna il contatore 
mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina = $pagina");
}

// Inserisce i dati nel db e sovrascrive il numero-visite precedente
if (mysql_affected_rows() == 0) {
    mysql_query("INSERT INTO phpbb_contatore (pagina, visite) VALUES ($pagina, 1)"); 
}  

// Estrae i dati dal DB 
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina"); 
$visite = mysql_fetch_assoc($res);  

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 26/05/2016, 20:55
da frank
Ho messo il codice, lo switch, che mette a video la parola "volta" o "volte" in base al numero di visite, il singolare serve solo vicino a 1.
Però messo così non apre la pagina, dov'è l'errore?

Codice: Seleziona tutto

...
// Estrae i dati dal DB 
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina"); 
$visite = mysql_fetch_assoc($res);  

switch ($visite) {
    case 1:
        $volte " 1 volta";
        break;
     default: 
        $volte = $visite." volte";
}

// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],
)); 
...

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 27/05/2016, 11:37
da Micogian
Prova a inserire la visualizzazione dei dati estratti e togli momentaneamente il collegamento con il file HTML.

Codice: Seleziona tutto

// Estrae i dati dal DB
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina");
$visite = mysql_fetch_assoc($res); 
echo "visite= " . $visite . "<br />";
switch ($visite) {
    case 1:
        $volte " 1 volta";
        break;
     default:
        $volte = $visite." volte";
}
echo "volte= " . $volte. "<br />";
// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],
)); 
echo "conta_visite1= " . $visite['visite'] . "<br />";
Lanci solo il file php e vedi se funziona e se i dati sono visualizzati.

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 27/05/2016, 13:35
da frank
Ho fatto hai detto ma la pagina non si apre, appare lo schermo bianco.

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 27/05/2016, 22:10
da Micogian
frank ha scritto:Ho fatto hai detto ma la pagina non si apre, appare lo schermo bianco.
allora c'è un errore nel codice, a volte basta una virgola.

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 27/05/2016, 22:14
da frank
Questa è la pagina

Codice: Seleziona tutto

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
 
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup(); 
 
page_header('L’istinto del corpo verso il cibo'); // Questo è ciò che apparirà come frase principale nel motore di ricerca
 
$template->set_filenames(array(
	'body' => 'a-istinti-del-body.html',  // Questo file si trova nella cartella template
));
 
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

//Contavisite, connessione al database
$link = mysql_connect($dbhost, $dbuser, $dbpasswd);
if (!$link) {
	die ("Non riesco a connettermi:" . mysql_error());
}
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database:" . mysql_error());
}

// Identificativo numerico della pagina 
$pagina = 1; 

// il 314 è il mio ID utente che ho in LOCALHOST per impedire che il contatore che conteggi i miei click
// NON va messo in "*a-contatore.php"
if($user->data['user_id'] <> 314 ) {
// Aggiorna il contatore 
mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina = $pagina");
}

// Inserisce i dati nel db e sovrascrive il numero-visite precedente
if (mysql_affected_rows() == 0) {
    mysql_query("INSERT INTO phpbb_contatore (pagina, visite) VALUES ($pagina, 1)"); 
}  

// Estrae i dati dal DB
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina");
$visite = mysql_fetch_assoc($res); 

echo "visite= " . $visite . "<br />";
switch ($visite) {
    case 1:
        $volte " 1 volta";
        break;
     default:
        $volte = $visite." volte";
}
echo "volte= " . $volte. "<br />";

// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],
)); 
echo "conta_visite1= " . $visite['visite'] . "<br />";

// Include il file php che contiene tutti i contatori per il file articoliX.html. VA MESSO QUI
include($phpbb_root_path . '*a-contatori.' . $phpEx);

page_footer();
?>

Re: Impedire il conteggio delle visite da parte dell'admin

Inviato: 27/05/2016, 23:23
da Micogian
Prova a togliere l'apostrofo nel page_header

Codice: Seleziona tutto

page_header('L’istinto del corpo verso il cibo');
prima provi a toglierlo e poi vedi se funziona così:

Codice: Seleziona tutto

page_header('L\’istinto del corpo verso il cibo');
oppure così:

Codice: Seleziona tutto

page_header("L’istinto del corpo verso il cibo");