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

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

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

Stampa come prima, non è che magari è la variabile in fondo da sistemare?

Codice: Seleziona tutto

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

   echo "risultato= " . $tot_visite['visite'] . "<br />";
   
if ( $tot_visite['visite'] == 1) {
$volte = "1 volta";
}
else {
$volte = $tot_visite['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 » 29/05/2016, 22:44

La variabile che ritorna il numero delle visite è $tot_visite['visite'] e prima hai detto che il comando echo stampava il numero delle visite

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 » 29/05/2016, 22:50

Si, mi spiego: l'echo scrive risultato= e poi il numero delle visite, fuori campo (in alto a sinistra del monitor).

Mentre questa variabile stampa solo il numero

Codice: Seleziona tutto

// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],
)); 
e nel file html la parola "volte" l'ho messa io, invece dovrebbe essere automatica

Codice: Seleziona tutto

<!-- Contavisite, richiama la variabile del file php -->
<span class="letto">Letto <span class="number">{conta_visite1}</span> volte</span> 

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 » 30/05/2016, 4:15

Ho risolto la cosa e ora funziona

Codice: Seleziona tutto

$pagina = 1; 

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

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

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

if ( $tot_visite['visite'] == 1) {
    $volte = "<span class=\"letto\">Letto </span><span class=\"number\">". $tot_visite['visite'] ."</span> volta";
}
else {
    $volte = "<span class=\"letto\">Letto </span><span class=\"number\">". $tot_visite['visite'] . "</span> volte";
}

// Crea la variabile-echo che viene poi richiamata nel file articoliX.html
$template->assign_vars(array(
    'conta_visite1' => "<span class=\"letto\">". $volte ."</span>",
)); 
C'è ancora questa cosa da sistemare: questo $pagina = 1; se al posto del numero metto il nome della pagina, non funziona.

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 » 30/05/2016, 9:55

Mi sembra una soluzione complicata e nella creazione della variabile phpbb ripeti la class="letto" che è già compresa nella variabile $volte .
In phpbb le variabili devono essere maiuscole.
C'è ancora questa cosa da sistemare: questo $pagina = 1; se al posto del numero metto il nome della pagina, non funziona.
Se la query interroga il campo "visite" che è un campo numerico non può funzionare con il titolo.

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 » 30/05/2016, 10:18

Mai saputo che in php le variabili devono essere maiuscolo, anche nei tuoi esempi sono in minuscolo. Il css lo posso ripetere...così formatta giusto. Il problema ora è il campo numerico.

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 » 30/05/2016, 13:46

Io ho scritto che le variabili phpbb vanno in maiuscolo, non quelle in php.

Codice: Seleziona tutto

$template->assign_vars(array(
    'CONTA_VISITE1' => "<span class=\"letto\">". $volte ."</span>",
)); 
Guarda i file della cartella "includes" e trovami una variabile che sia minuscola.

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 » 30/05/2016, 14:39

Si, ho corretto. Avendo 2 codici quei uguali ma che devono lavorare in modo indipendente, ho dovuto fare un po' i giochi di prestigio per farli funzionare correttamente. Sembrerebbe tutto a posto come php

Questo lavora nel template

Codice: Seleziona tutto

// Identificativo della pagina 
$pagina = "'a-istinti-del-body'"; 

// il 314 è il mio ID utente che ho in LOCALHOST per impedire che il contatore 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");
}

if($user->data['user_id'] <> 314 ) {
// Inserisce i dati nel db e sovrascrive il numero-visite precedente
mysql_query("INSERT INTO phpbb_contatore (pagina, visite) VALUES ($pagina, 1)"); 
}

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

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

Codice: Seleziona tutto

$pagina = "'a-istinti-del-body'"; 

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

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

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

if ( $tot_visite['visite'] == 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'] ."</span> <span class=\"letto\">". $volte ."</span>",
)); 

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 » 30/05/2016, 14:56

Se la variabile $pagina è una stringa e non un numero devi usare "like" e non "="

Codice: Seleziona tutto

$pagina = "'a-istinti-del-body'";

// Aggiorna il contatore 
mysql_query("UPDATE phpbb_contatore SET visite = visite WHERE pagina like $pagina");
Se non funziona proverei così:

Codice: Seleziona tutto

mysql_query("UPDATE phpbb_contatore SET visite = visite WHERE pagina like %" . $pagina . "%");
Ma un UPDATE sarebbe più sicuro se il record da modificare fosse un numero (es. id_articolo)

Non capisco poi perchè un INSERT che crea un nuovo record con valore "0" alle visite.

Codice: Seleziona tutto

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

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 » 30/05/2016, 15:21

Come ti dicevo, ho dovuto fare i giochi di prestigio, un INSERT ha VALUES ($pagina, 0) e l'altro VALUES ($pagina, 1), c'è un motivo: In pratica, quando entro io nella pagina direttamente o tramite link, il contatore segna quello che c'era prima, se invece entra un altro, il contatore segna il click.

- Ho modificato così:

Codice: Seleziona tutto

mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina like $pagina");
lo devo mettere anche qui?

Codice: Seleziona tutto

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

Rispondi

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

Chi c’è in linea

Visitano il forum: Nessuno e 68 ospiti