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 » 01/06/2016, 12:08

Siccome quando entro nel db vorrei vedere anche il nome della pagina, bisogna allora creare una nuova tabella che contiene id_cor e la colonna del nome della pagina. Facciamo così: dammi il codice per creare la nuova tabella.

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 » 01/06/2016, 13:19

Io ti avevo fatto un esempio di come poteva essere la tabella:
La tabella dovrebbe contenere i seguenti campi:

id_articolo = 1; // numero id da assegnare a ciascun articolo
titolo_articolo = "Istinti del body"; // titolo completo
titolo_link = "a-istinti-del-body"; // titolo link
visite_iscritti = xx ; // visite degli utenti iscritti
visite = xx ; // visite degli utenti non iscritti
Con phpmyadmin puoi aggiungere o togliere tutti i campi che vuoi, non ti serve creare una nuova tabella.

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 » 01/06/2016, 14:37

Così? O devo creare anche id_cor?
Schermata 2016-06-01 alle 14.36.42.png
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

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 » 01/06/2016, 15:01

Ma $id_cor è una variabile di php. In pratica nel codice tu dichiari che la variabile $id_cor è l'id della pagina selezionata, il nome è ininfluente, potresti chiamare la variabile $pippo.
Ogni record (ogni riga dellla tabella) deve avere un numero ID diverso associato alla pagina, pertanto quando ti riferisci alla variabile $id_cor= 6 sarà il record che ha per id=6.
Sia nella query di aggiornamento che in quella di selezione userai la variabile $id_cor della pagina selezionata, in sostanza la query di aggiornamento

Codice: Seleziona tutto

mysql_query("UPDATE phpbb_contatore SET visite_ospiti = visite_ospiti + 1 WHERE id = $id_cor");
è come se tu scrivessi

Codice: Seleziona tutto

mysql_query("UPDATE phpbb_contatore SET visite_ospiti = visite_ospiti + 1 WHERE id = 6");
In questo caso la variazione del numero delle visite viene effettuato al record che ha il numero 6 di id
il nome usato non ha nessuna importanza, il termine "id_cor" ha lo scopo di evidenziare che $id_cor è l'id della pagina corrente, serve per rendere più leggibile il codice.

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 » 01/06/2016, 15:39

Allora, se ho ben capito, questo id devo modificarlo in id_cor
Schermata%202016-06-01%20alle%2014.36.42.png
e questo $pagina = "'a-istinti-del-body'"; in $id_cor= 1; e togliere il campo "pagina"
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

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 » 01/06/2016, 15:50

No, non hai capito. Il nome dato a un campo di una tabella non centra niente col nome assegnato alla variabile.
I nomi dei campi possono rimanere tali.
Se poi vuoi mantenere la variabile $pagina e la variabile $id_cor è indifferente, ma nelle query userai $id_cor.
E' sempre preferibile usare un valore numerico nelle query piuttosto che un testo.

Codice: Seleziona tutto

$pagina = "a-istinti-del-body"; 
$id_cor = 1; 

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 » 01/06/2016, 16:03

La pagine si apre ma non inserisce i dati nel db, ho tolto INSERT tenendo la tabella del post precedente

Codice: Seleziona tutto

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

// il 314 è l'ID utente da non calcolare nel conteggio
if ($user->data['user_id'] <> 314 ) {
   if ($user->data['user_id'] == 1 ) {
      // Aggiorna il contatore generale e quello dei visitatori Ospiti     
      mysql_query("UPDATE phpbb_contatore SET visite = visite + 1, visite_ospiti = visite_ospiti + 1 WHERE id = $id_cor");
   } else {
      // Aggiorna il contatore generale e quello degli Utenti Registrati
      mysql_query("UPDATE phpbb_contatore SET visite = visite + 1, visite_users = visite_users + 1 WHERE id = $id_cor");
   }
}

// Estrae i dati dal DB tramite mysql_query("SELECT...) che c'è nel file *a-contatori.php

// 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();
Secondo codice:

Codice: Seleziona tutto

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

// Estrae i dati dal DB
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE id = $id_cor"); 
$tot_visite = mysql_fetch_assoc($res); 
$visite       = $tot_visite['visite'];
$visite_users    = $tot_visite['visite_users'];
$visite_ospiti    = $tot_visite['ospiti'];

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 » 01/06/2016, 17:32

Il codice è uno, perchè 2 ?
Una parte del codice modifica le visite, l'altro estrae i dati.
A che serve il file a-contatori.php ?

EDIT
Cerchiamo di chiarire quali sono i campi della tabella e se sono gli stessi che usi nelle query.
Se nella tabella hai i campi "visite_users" e "visite_ospiti" nella query devi usare quelli.
Per gli ospiti

Codice: Seleziona tutto

mysql_query("UPDATE phpbb_contatore SET visite_ospiti = visite_ospiti + 1 WHERE id = $id_cor");
Per gli utenti

Codice: Seleziona tutto

mysql_query("UPDATE phpbb_contatore SET visite_users = visite_users + 1 WHERE id = $id_cor");

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 » 02/06/2016, 5:13

Vediamo innanzitutto la tabella: va bene così?
Schermata 2016-06-02 alle 05.10.53.png

Codice: Seleziona tutto

// Identificativo della pagina 
$pagina = "'a-istinti-del-body'"; 
id_cor = 1;
...
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

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, 2:06

Qui ho quasi sistemato tutto, la cosa che proprio non funziona è l'echo {CONTA_VISITE1} che ho nelle immagini-link in fondo, li non lo mette a video. Ho eliminato il file esterno, ora ne ho uno solo. Questo è il nuovo codice a 3 campi:

Codice: Seleziona tutto

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

// Aggiorna il contatore 
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   
      mysqli_query($link,"UPDATE phpbb_contatore SET visite_tot = visite_tot + 1, visite_ospiti = visite_ospiti + 1 WHERE pagina = $pagina");
   } else {
      // Aggiorna il contatore generale e quello degli Utenti Registrati
      mysqli_query($link,"UPDATE phpbb_contatore SET visite_tot = visite_tot + 1, visite_users = visite_users + 1 WHERE pagina = $pagina");
   }
}

// Inserisce i dati nel db LA PRIMA VOLTA e mette "1"  o "0" se clicco io
if($user->data['user_id'] <> 314 ) {
mysqli_query($link,"INSERT INTO phpbb_contatore (pagina, visite_tot) VALUES ($pagina, 1)"); 
} else {
mysqli_query($link,"INSERT INTO phpbb_contatore (pagina, visite_tot) VALUES ($pagina, 0)"); 
}

// Estrae i dati dal DB 
$res = mysqli_query($link,"SELECT visite_tot FROM phpbb_contatore WHERE pagina like $pagina");   
$tot_visite = mysqli_fetch_assoc($res);

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

Rispondi

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

Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti