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
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 » 03/06/2016, 18:00

Ma quello non è il mio codice, prima metto il SELECT e poi l'UPDATE.

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 » 03/06/2016, 18:04

E' il tuo, ma anche se inverto i codice è uguale

Codice: Seleziona tutto

// Identificativo della pagina 
$id_pagina = 1;

// Estrae i dati dal DB 
$res = mysqli_query("SELECT * FROM phpbb_contatore WHERE id = $id_pagina");
$tot_visite = mysqli_fetch_assoc($res);
$visite_tot = $tot_visite['visite_tot'];
$visite_users = $tot_visite['visite_users'];
$visite_ospiti = $tot_visite['visite_ospiti'];

if ( $tot_visite['visite_tot'] == 1) {
    $volte = "volta"; 
}
else {
    $volte = "volte"; 
}

// Crea la variabile-echo che viene poi richiamata nel template e nel file articoliX.html
$template->assign_vars(array(
    'CONTA_VISITE1' => "<span class=\"letto\">Letto </span><span class=\"number\">". $tot_visite['visite_tot'] ."</span> <span class=\"letto\">". $volte ."</span>",
)); 
   
// elaborare la modifica del record
if($user->data['user_id'] <> 314 ) { // Il 314 è l'ID admin (il mio), non viene conteggiato
if ($user->data['user_id'] == 1 ) { // Conteggia solo gli Utenti Registrati e gli Ospiti 
     $visite_tot = $visite_tot + 1 ; 
     $visite_ospiti = $visite_ospiti + 1 ; 
     mysql_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1, visite_ospiti = visite_ospiti + 1 WHERE id = $id_pagina");
   } else {
      // Aggiorna il contatore generale e quello degli Utenti Registrati
     $visite_tot = $visite_tot + 1 ; 
     $visite_users = $visite_users + 1 ; 
     mysql_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1,visite_users = visite_users + 1 WHERE id = $id_pagina");
   }
}

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 » 03/06/2016, 18:32

Non so cosa dirti, ho fatto una pagina di prova http://www.giannidose.altervista.org/pr ... e.php?id=1
prova a sostituire l'id=1 con 2 o 3 e vedrai che funziona.

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 » 03/06/2016, 18:38

Dov'è questo id=1, io non lo trovo.

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 » 03/06/2016, 18:50

L'id è quello indicato nell'URL, la tabella è mia, non è la tua, è una tabella di prova che contiene 3 records, 1, 2 e 3 appunto. Se cambi il numero nell'url cambia il record indicato.
E' un semplice esempio per mostrare che se le cose sono fatte correttamente, funzona.

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 » 03/06/2016, 18:54

Io le cose le ho fatte come hai detto tu, posto ancora il codice che sto usando

Codice: Seleziona tutto

$id_pagina = 1;

// Estrae i dati dal DB 
$res = mysqli_query("SELECT * FROM phpbb_contatore WHERE id = $id_pagina");
$tot_visite = mysqli_fetch_assoc($res);
$visite_tot = $tot_visite['visite_tot'];
$visite_users = $tot_visite['visite_users'];
$visite_ospiti = $tot_visite['visite_ospiti'];

if ( $tot_visite['visite_tot'] == 1) {
    $volte = "volta"; 
}
else {
    $volte = "volte"; 
}

// Crea la variabile-echo che viene poi richiamata nel template e nel file articoliX.html
$template->assign_vars(array(
    'CONTA_VISITE1' => "<span class=\"letto\">Letto </span><span class=\"number\">". $tot_visite['visite_tot'] ."</span> <span class=\"letto\">". $volte ."</span>",
)); 
   
// Aggiorna il contatore 
// elaborare la modifica del record
if($user->data['user_id'] <> 314 ) { // Il 314 è l'ID admin (il mio), non viene conteggiato
if ($user->data['user_id'] == 1 ) { // Conteggia solo gli Utenti Registrati e gli Ospiti 
     $visite_tot = $visite_tot + 1 ; 
     $visite_ospiti = $visite_ospiti + 1 ; 
     mysql_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1, visite_ospiti = visite_ospiti + 1 WHERE id = $id_pagina");
   } else {
      // Aggiorna il contatore generale e quello degli Utenti Registrati
     $visite_tot = $visite_tot + 1 ; 
     $visite_users = $visite_users + 1 ; 
     mysql_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1,visite_users = visite_users + 1 WHERE id = $id_pagina");
   }
}
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 » 03/06/2016, 20:59

Ma questo codice dove lo inserisci?
Comunque l'ordine delle cose è SELECT, UPDATE, VARIABILE PHPBB.

Codice: Seleziona tutto

$id_pagina = 1;

// Estrae i dati dal DB 
$res = mysqli_query("SELECT * FROM phpbb_contatore WHERE id = $id_pagina");
$tot_visite = mysqli_fetch_assoc($res);
$visite_tot = $tot_visite['visite_tot'];
$visite_users = $tot_visite['visite_users'];
$visite_ospiti = $tot_visite['visite_ospiti'];

if ( $visite_tot == 1) {
    $volte = "volta"; 
}
else {
    $volte = "volte"; 
}

// Aggiorna la tabella in base al visitatore

if($user->data['user_id'] <> 314 ) { // Il 314 è l'ID admin (il mio), non viene conteggiato
   if ($user->data['user_id'] == 1 ) { // Conteggia solo gli Ospiti 
     $visite_tot = $visite_tot + 1 ; 
     $visite_ospiti = $visite_ospiti + 1 ; 
     mysql_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1, visite_ospiti = visite_ospiti + 1 WHERE id = $id_pagina");
   } else { // conteggia gli utenti registrati
      // Aggiorna il contatore generale e quello degli Utenti Registrati
     $visite_tot = $visite_tot + 1 ; 
     $visite_users = $visite_users + 1 ; 
     mysql_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1,visite_users = visite_users + 1 WHERE id = $id_pagina");
   }
}
// Crea la variabile PHPBB che viene poi richiamata nel template e nel file articoliX.html
$template->assign_block_vars('visite', array(
    'VISITE_TOT' =>  $visite_tot ,
    'VISITE_USERS => $visite_users,
    'VISITE_OSPITI' => $visite_ospiti,
    'VOLTE'   => $volte
)); 

   
La formattazione va fatta nel template, le variabili da usare saranno {visite.VISITE_TOT}, {visite.VISITE_USERS}, {visite.VISITE_OSPITI}, {visite.VOLTE}, il nome dell'array (visite) e la variabile.
Poi dipende quale valore vuoi visualizzare (tot, users o ospiti)

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 » 03/06/2016, 21:19

Il css non va bene se lo metto nel file php una volta per tutte?

Ho fatto copia incolla (c'era qualche mancanza di apici) ma non va, ho solo adeguato mysqli, prima era mysql.

Codice: Seleziona tutto


$id_pagina = 1;

//Contavisite, connessione al db tramite i parametri in config.php
$link = mysqli_connect($dbhost, $dbuser, $dbpasswd, $dbname);
if (!$link) {
	die ("Non riesco a connettermi:" . mysqli_error());
}

// Estrae i dati dal DB 
$res = mysqli_query("SELECT * FROM phpbb_contatore WHERE id = $id_pagina");
$tot_visite = mysqli_fetch_assoc($res);
$visite_tot = $tot_visite['visite_tot'];
$visite_users = $tot_visite['visite_users'];
$visite_ospiti = $tot_visite['visite_ospiti'];

if ( $visite_tot == 1) {
    $volte = "volta"; 
}
else {
    $volte = "volte"; 
}

// Aggiorna la tabella in base al visitatore

if($user->data['user_id'] <> 314 ) { // Il 314 è l'ID admin (il mio), non viene conteggiato
   if ($user->data['user_id'] == 1 ) { // Conteggia solo gli Ospiti 
    // Aggiorna il contatore generale e quello degli Ospiti
     $visite_tot = $visite_tot + 1 ; 
     $visite_ospiti = $visite_ospiti + 1 ; 
     mysqli_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1, visite_ospiti = visite_ospiti + 1 WHERE id = $id_pagina");
   } else { 
    // Aggiorna il contatore generale e quello degli Utenti Registrati
     $visite_tot = $visite_tot + 1 ; 
     $visite_users = $visite_users + 1 ; 
     mysqli_query("UPDATE phpbb_contatore SET visite_tot = visite_tot + 1,visite_users = visite_users + 1 WHERE id = $id_pagina");
   }
}
// Crea la variabile PHPBB che viene poi richiamata nel template e nel file articoliX.html
$template->assign_block_vars('visite', array(
    'VISITE_TOT' =>  $visite_tot,
    'VISITE_USERS' => $visite_users,
    'VISITE_OSPITI' => $visite_ospiti,
    'VISITE'   => $visite,
)); 
Nel template ho messo

Codice: Seleziona tutto

<!-- Contavisite, richiama la variabile del file php -->
{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 » 03/06/2016, 21:32

Ma non va cosa?
Prova a mettere un echo finale per vedere che valori risultano

Codice: Seleziona tutto

echo "visite_tot= " .  $visite_tot . "<br />";
echo "visite_users= " .  $visite_users . "<br />";
echo "visite_ospiti= " .  $visite_ospiti . "<br />";
echo "volte= " .  $volte . "<br />";
così vedi che risultati hai.

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 » 03/06/2016, 21:43

Ma dove sbaglio insomma? Non apre la pagina

Codice: Seleziona tutto

$template->assign_block_vars('visite', array(
    'VISITE_TOT' =>  $visite_tot,
    'VISITE_USERS' => $visite_users,
    'VISITE_OSPITI' => $visite_ospiti,
    'VISITE'   => $visite
)); 

echo "visite_tot= " .  $visite_tot . "<br />";
echo "visite_users= " .  $visite_users . "<br />";
echo "visite_ospiti= " .  $visite_ospiti . "<br />";
echo "volte= " .  $volte . "<br />";

page_footer();
?>

Rispondi

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

Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti