IP adresse im Profil

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
scheibenbrot
Mitglied
Beiträge: 1552
Registriert: 23.12.2005 14:32

IP adresse im Profil

Beitrag von scheibenbrot »

Hallo,
ich habe dieses kleine Script gemacht:

Code: Alles auswählen

<html>
<head>
	<title>IP</title>
</head>
<body>
	<?php
	$ip = getenv("REMOTE_ADDR");
	echo("Ihre IP-Adresse: $ip");
	?>
</body>
</html>
Damit bekommt man angezeigt: Ihre IP-Adresse: blablabla
Nun möchte ich es ins Profil einbinden, dann soll aber die IP Adresse eines Users angezeigt werden.
Muss ich jetzt die variable der user id da einbinden? Aber wie?

mfg
Love is the slowest form of suicide.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Die ip des users ist nur in der sessions und posts tabelle gespeichert.
Die sessions ip bleibt nur kurze zeit gespeichert. Damit wäre die ausgabe nur verfügbar wenn der user eingeloggt ist. Wenn das reicht kannst du sie mit decode_ip($profiledata['session_ip']) ausgeben lassen.

Möglich wäre eine abfrage der *_posts tabelle um die letzte bekannte ip herauszufinden. Das wäre um einiges komplizierter.

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
scheibenbrot
Mitglied
Beiträge: 1552
Registriert: 23.12.2005 14:32

Beitrag von scheibenbrot »

In welcher Datei wird denn das $profiledata['session_ip'] generiert.
In der usercp_viewprofile finde ich nichts.

Ich möchte das ganze in die Nickpage haben, deswegen muss ich das wissen.
Love is the slowest form of suicide.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

scheibenbrot hat geschrieben: In der usercp_viewprofile finde ich nichts.
Logisch, du willst es ja auch drin haben....

#in usercp_viewprofile.php:
#Nach:

Code: Alles auswählen

	'USERNAME' => $profiledata['username'],
#Einfügen:

Code: Alles auswählen

	'CURRENT_IP' => (!empty($profiledata['session_ip'])) ? decode_ip($profiledata['session_ip']) : 'Offline',
#Und im Template irgendwo:

Code: Alles auswählen

IP-Adresse: {CURRENT_IP} 

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
scheibenbrot
Mitglied
Beiträge: 1552
Registriert: 23.12.2005 14:32

Beitrag von scheibenbrot »

Also funktionieren tut es eigentlich.
Wenn ich dies in die nickpage.php einfüge steht da:
IP-Adresse: Offline

Was muss ich also hier dran ändern, damit es geht?:

Code: Alles auswählen

'CURRENT_IP' => (!empty($profiledata['session_ip'])) ? decode_ip($profiledata['session_ip']) : 'Offline',
Love is the slowest form of suicide.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Hast recht,
die ip wird nicht im $profildata gepeichert.
Kannst die zeilen wieder löschen , sorry :grin:

Da bleibt nur der weg über eine zusätzliche sql abfrage...

Ist dir das denn so wichtig? Wofür braucht man sowas?

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
scheibenbrot
Mitglied
Beiträge: 1552
Registriert: 23.12.2005 14:32

Beitrag von scheibenbrot »

ich hätte es gerne.
Wenn es über die tabelle geht....gerne :P :D
Love is the slowest form of suicide.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Und was hättest du gern?
- die aktuelle ip (nur wenn online)
- die zuletzt bekannte ip (abhängig vom letzten post - kann sehr alt sein)
- die zuletzt bekannte ip (vom letzten login)
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
scheibenbrot
Mitglied
Beiträge: 1552
Registriert: 23.12.2005 14:32

Beitrag von scheibenbrot »

Wenn jemand online ist die aktuelle und wenn jemand offline ist die letze aktuelle, als der User online war.
Love is the slowest form of suicide.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Jetzt stellst du aber ansprüche :)

Die ip adresse des users wird jetzt alle 60 sekunden in die phpbb_users geschrieben.

SQL ausführen:

Code: Alles auswählen

ALTER TABLE `phpbb_users` ADD `user_last_ip` CHAR( 8 ) DEFAULT '0' NOT NULL
in sessions.php:
# Finde:

Code: Alles auswählen

SET user_session_time = $current_time, user_session_page = $thispage_id
# Ersetze mit:

Code: Alles auswählen

SET user_session_time = $current_time, user_session_page = $thispage_id, user_last_ip = '$user_ip'
#in usercp_viewprofile.php:
#Nach:

Code: Alles auswählen

	'USERNAME' => $profiledata['username'],
#Einfügen:

Code: Alles auswählen

	'CURRENT_IP' => (!empty($profiledata['user_last_ip'])) ? decode_ip($profiledata['user_last_ip']) : 'Offline',
#In profile_view_body.tpl irgendwo:

Code: Alles auswählen

Letzte bekannte IP-Adresse: {CURRENT_IP} 

Edith: Alles noch mal zusammengefasst...

Olli
Zuletzt geändert von Olli Oberhausen am 29.10.2006 14:18, insgesamt 1-mal geändert.
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Antworten

Zurück zu „Coding & Technik“