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

Stampare ip del visitatore nel database

Supporto per phpBB 3.1.x.
Rispondi
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

Stampare ip del visitatore nel database

Messaggio da frank » 23/08/2016, 23:35

Ho creato una pagina personalizzata che mette a video il numero di visite degli ospiti e degli users registrati, funziona tutto perfettamente. Ora vorrei mettere nel db l'ip dell'ultimo ospite (solo nel db, non mi interessa estrarlo), solo che non funziona.

Come variabile ho provato con questo: $ip_ultimo_visitatore = $_SERVER["REMOTE_ADDR"];
Ho già creato anche la tabella ip_ultimo_visitatore.

Questo è il codice funzionante, senza i richiami dell'ip in INSERT INTO e VALUES perché non funzionava con essi.

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’uomo vuole aiutare'); // Questo è ciò che apparirà come frase principale nel motore di ricerca
 
$template->set_filenames(array(
	'body' => 'a-aiuto-body.html',  // Questo file si trova nella cartella template
));
 
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

// Identificativo della pagina 
$pagina = "'a-aiuto'";

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

if ($user->data['user_id'] == 314) { // il 314 è l'ID admin (il mio), non viene conteggiato
        $query="INSERT INTO phpbb_contatore(pagina, visite_tot, visite_users, visite_ospiti) VALUES($pagina, 0, 0, 0)
                     ON DUPLICATE KEY UPDATE visite_tot = visite_tot + 0, visite_users = visite_users + 0, visite_ospiti = visite_ospiti + 0";
    } 
       else if ($user->data['user_id'] == 1) { // Conteggia gli Ospiti...
        $query="INSERT INTO phpbb_contatore(pagina, visite_tot, visite_ospiti) VALUES($pagina, 1, 1)
                     ON DUPLICATE KEY UPDATE visite_tot = visite_tot + 1, visite_ospiti = visite_ospiti + 1";
    } else { // ... e gli Utenti Registrati
        $query="INSERT INTO phpbb_contatore(pagina, visite_tot, visite_users) VALUES($pagina, 1, 1)
                     ON DUPLICATE KEY UPDATE visite_tot = visite_tot + 1, visite_users = visite_users + 1";
    }
    $ins_up=mysqli_query($link, $query);

// 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
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: Stampare ip del visitatore nel database

Messaggio da frank » 24/08/2016, 13:36

Il problema è questo: $ip_ultimo_visitatore = $_SERVER["REMOTE_ADDR"];

mi da questo errore:

Errore Generale
Illegal use of $_SERVER. You must use the request class or request_var() to access input data. Found in /Applications/MAMP/htdocs/MIEI_SITI/Benessereforum/a-aiuto.php on line 29. This error message was generated by deactivated_super_global.

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Stampare ip del visitatore nel database

Messaggio da Barrnet » 24/08/2016, 15:14

PhpBB filtra, per questioni di sicurezza, l'uso dell'array globale $_SERVER. Puoi utilizzare la funzione nativa request_var oppure mettere al tuo script il seguente codice:

Codice: Seleziona tutto

$request->enable_super_globals();
Subito dopo questa porzione di codice:

Codice: Seleziona tutto

include($phpbb_root_path . 'common.' . $phpEx);
Ovviamente la prima soluzione è quella più sicura.

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: Stampare ip del visitatore nel database

Messaggio da frank » 24/08/2016, 15:23

Non ho capito, che devo mettere?

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: Stampare ip del visitatore nel database

Messaggio da frank » 24/08/2016, 16:30

Mi spiego, questo è il campo nella tabella, che codice php metto?

$query="INSERT INTO phpbb_contatore(pagina, visite_tot, visite_ospiti, ip_ultimo_visitatore)
VALUES($pagina, 1, 1, '$ip_ultimo_visitatore')

Rispondi

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

Chi c’è in linea

Visitano il forum: Nessuno e 72 ospiti