phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Impedire il conteggio delle visite da parte dell'admin

Supporto per phpBB 3.1.x.
Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Impedire il conteggio delle visite da parte dell'admin

Messaggio da frank » 24/05/2016, 3:24

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

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

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

Messaggio da Micogian » 24/05/2016, 8:36

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.

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

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

Messaggio da frank » 24/05/2016, 10:06

Grazie :-D

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

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

Messaggio da frank » 25/05/2016, 2:07

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

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

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

Messaggio da frank » 26/05/2016, 20:55

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'],
)); 
...

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

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

Messaggio da Micogian » 27/05/2016, 11:37

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.

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

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

Messaggio da frank » 27/05/2016, 13:35

Ho fatto hai detto ma la pagina non si apre, appare lo schermo bianco.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

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

Messaggio da Micogian » 27/05/2016, 22:10

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.

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

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

Messaggio da frank » 27/05/2016, 22:14

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

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

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

Messaggio da Micogian » 27/05/2016, 23:23

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

Rispondi

Torna a “[3.1.x] Forum di Supporto”

Chi c’è in linea

Visitano il forum: Nessuno e 53 ospiti