Pagina 1 van 1
Cel met IP nummer bij maken?
Geplaatst: 14 jan 2005, 17:56
door maico
Hoi ik ben de mod:
Admin User Viewed Posts Tracker
Aan het proberen aan te passen, ik zou daar graag een cel bij hebben die het IP nummer laat zien van de gebruiker.
Nu heb ik de cel aan gemaakt in de
user_viewed_posts.tpl zoals je ziet in het rood:
<table border="0" cellpadding="4" cellspacing="1" width="100%" class="forumline">
<tr><th align="center" height="25" class="thCornerL" nowrap="nowrap">{L_TOPICS}</th>
<th align="center" height="25" class="thTop" nowrap="nowrap">{L_FORUM}</th>
<th align="center" height="25" class="thTop" nowrap="nowrap">{L_LAST_VIEWED}</th>
<th align="center" height="25" class="thCornerR" nowrap="nowrap">{L_VIEWS}</th>
<th aligin="center" height="25" class="thCornerR">{L_IP_ADDRESS}</th>
</tr>
<!-- BEGIN viewedrow -->
<tr>
<td align="left" class="row1"><span class="genmed"><a href="viewtopic.{PHPEX}?{TOPIC_URL_CODE}={viewedrow.TOPIC_ID}">{viewedrow.TOPIC_TITLE}</a></span></td>
<td align="center" class="row2"><span class="genmed"><a href="viewforum.{PHPEX}?{FORUM_URL_CODE}={viewedrow.FORUM_ID}">{viewedrow.FORUM_NAME}</a></span></td>
<td align="center" class="row3"><span class="gensmall">{viewedrow.LAST_VIEWED}</span></td>
<td align="center" class="row3"><span class="genmed">{viewedrow.NUM_VIEWS}</span></td>
<td aligin="center" class="{reg_user_row.ROW_CLASS}"><span class="gen"><a href="{reg_user_row.U_WHOIS_IP}" class="gen" target="_phpbbwhois">{reg_user_row.IP_ADDRESS}</a></span></td>
</tr>
<!-- END viewedrow -->
Ik kom aan die gegevens uit de admin\index_body.tpl
Maar nu moet ik nog ergens aan geven natuurlijk dat het ip ook geprint wordt in het user_viewed_posts.tpl
Ik denk, maar dat is ook niets meer dan gissen……. Dat ik dat in de
functions_user_viewed_posts.php moet doen!?
Daar heb ik het volgende veranderd maar er moet schijnbaar nog iets gebeuren want ik zie geen ip komen!?
while($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('viewedrow', array(
'TOPIC_TITLE' => $row['topic_title'],
'FORUM_NAME' => $row['forum_name'],
'FORUM_ID' => $row['forum_id'],
'TOPIC_ID' => $row['topic_id'],
'LAST_VIEWED' => create_date($board_config['default_dateformat'], $row['last_viewed'], $board_config['board_timezone']),
'USER_ID' => $row['user_id'],
"IP_ADDRESS" => $reg_ip,
'NUM_VIEWS' => $row['num_views'])
);
}
$template->assign_vars(array(
'PHPEX' => $phpEx,
'USER_ID' => $user_id,
'S_MODE_SELECT' => uvp_make_sort_drop_box($sort),
'S_ORDER_SELECT' => uvp_make_order_drop_box($order),
'FORUM_URL_CODE' => POST_FORUM_URL,
'TOPIC_URL_CODE' => POST_TOPIC_URL,
'L_VIEWS' => $lang['Views'],
'L_TOPICS' => $lang['Topics'],
'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
'L_ORDER' => $lang['Order'],
'L_SORT' => $lang['Sort'],
'L_FORUM' => $lang['Forum'],
"L_IP_ADDRESS" => $lang['IP_Address'],
'L_LAST_VIEWED' => $lang['Last_Viewed'])
);
Ook deze gegevens heb ik uit de
admin/index.php
Wat doe ik fout of wat moet ik waar veranderen voordat het werkt?
Re: Cel met IP nummer bij maken?
Geplaatst: 14 jan 2005, 22:44
door Eminemzdogz
maico schreef:
<table border="0" cellpadding="4" cellspacing="1" width="100%" class="forumline">
<tr><th align="center" height="25" class="thCornerL" nowrap="nowrap">{L_TOPICS}</th>
<th align="center" height="25" class="thTop" nowrap="nowrap">{L_FORUM}</th>
<th align="center" height="25" class="thTop" nowrap="nowrap">{L_LAST_VIEWED}</th>
<th align="center" height="25" class="thCornerR" nowrap="nowrap">{L_VIEWS}</th>
<th aligin="center" height="25" class="thCornerR">{L_IP_ADDRESS}</th>
</tr>
bovenste rode thCornerR zou ik thTop van maken en aligin klopt niet

Het ziet er voor zover ik weet compleet uit wat je gedaan hebt.. wat voor foutmelding krijg je?
Geplaatst: 14 jan 2005, 23:51
door maico
Die bovenste zoals je aan geeft is een orginele daar ben ik niet aan geweest voor de uitbreiding.
Ik krijg geen fout melding maar ik zie geen ip nummers verschijnen.
Dus ik vermoed dat ik nog ergens iest mis, maar heb geen idee wat!
Geplaatst: 15 jan 2005, 09:59
door Luuk
$reg_ip is een variabele, heb je de plaats waar hij wordt 'aangemaakt' ook meegekopieerd?
Geplaatst: 15 jan 2005, 10:11
door maico
Nee ik heb niet meer gedaan als hier boven staat.
wel heb ik nog ff zitten klojen met dit erbij in te werken maar dat lukt helemaal niet, want alles wat ik doe is proberen en geen kennis
Code: Selecteer alles
$sql = "SELECT s.session_ip HIER STONDEN ER NOG VEEL MEER
FROM " . USERS_TABLE . " u, " . SESSIONS_TABLE . " s
AND u.user_id = s.session_user_id
Maar helaas het lukt niet alhoewel ik heel dicht in de buurt ben denk ik

Geplaatst: 15 jan 2005, 10:13
door Luuk
Zo te zien moet je dan
Code: Selecteer alles
$sql = "SELECT u.user_id, u.username, u.user_session_time, u.user_session_page, s.session_logged_in, s.session_ip, s.session_start
FROM " . USERS_TABLE . " u, " . SESSIONS_TABLE . " s
WHERE s.session_logged_in = " . TRUE . "
AND u.user_id = s.session_user_id
AND u.user_id <> " . ANONYMOUS . "
AND s.session_time >= " . ( time() - 300 ) . "
ORDER BY u.user_session_time DESC";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Couldn't obtain regd user/online information.", "", __LINE__, __FILE__, $sql);
}
$onlinerow_reg = $db->sql_fetchrowset($result);
en
Code: Selecteer alles
$reg_ip = decode_ip($onlinerow_reg[$i]['session_ip']);
hebben. Moet je het er wel op de goede plaats neerzetten.
Geplaatst: 15 jan 2005, 10:33
door maico
Je bovenste is waar ik het stukje wat ik dacht nodig te hebben uit gehaald heb maar de onderste heb ik niet gebruikt.
En wat is de goed plaats?
Hier heb ik even het
bestandje staan met wat ik heb aangepast in het rood.
Zou je me even willen aangeven waar ik het kan of moet plaatsen?
Geplaatst: 15 jan 2005, 11:55
door maico
Ik heb de (') weer terug veranderd in (")
Want ik kreeg daar deze error op:
Code: Selecteer alles
Parse error: parse error, unexpected T_STRING, expecting ')' in /xx/xx/xx/xx/includes/functions_user_viewed_posts.php on line 201
Nu heb ik het na veel op en neer geschuif zo staan de blauwe code heb ik mee zitten schuiven
Zoals het nu is
en zo ziet het eruit

Geplaatst: 15 jan 2005, 12:17
door Luuk
Ik heb even de mod bekeken, ik ben bang dat het zo niet gat werken. Je kan beter in de database ene veld bij maken waar het ip wordt opgeslagen.
Code: Selecteer alles
ALTER TABLE `phpbb_topics_viewdata` ADD `user_ip` CHAR( 8 ) NOT NULL;
ALTER TABLE `phpbb_topics_viewdata` ADD KEY `user_ip` (`user_ip`);
Dat even uitvoeren in je database.
Zoek in functions_user_viewed_posts.php
Code: Selecteer alles
function update_user_viewed($user_id, $topic_id)
{
global $db, $lang;
/* See if our topic already exists */
$sql = 'SELECT viewed_id, num_views FROM ' . TOPICS_VIEWDATA_TABLE . "
WHERE user_id = $user_id
AND topic_id = $topic_id";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['Topic_Viewdata_Error'], '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
/* If it exists, we update the info */
if (isset($row['viewed_id']))
{
$views = $row['num_views'] + 1;
$sql = 'UPDATE ' . TOPICS_VIEWDATA_TABLE . "
SET num_views = $views,
last_viewed = " . time() . '
WHERE viewed_id = ' . $row['viewed_id'];
}
/* Else, we just insert the new default values */
else
{
$sql = 'INSERT INTO ' . TOPICS_VIEWDATA_TABLE . "
(user_id, topic_id, num_views, last_viewed)
VALUES
($user_id, $topic_id, 1, " . time() . ')';
}
if (!$db->sql_query($sql))
{
print $sql;
message_die(GENERAL_ERROR, $lang['Topic_Viewdata_Error'], '', __LINE__, __FILE__, $sql);
}
}
Wijzig in
Code: Selecteer alles
function update_user_viewed($user_id, $topic_id, $user_ip)
{
global $db, $lang;
/* See if our topic already exists */
$sql = 'SELECT viewed_id, num_views FROM ' . TOPICS_VIEWDATA_TABLE . "
WHERE user_id = $user_id
AND topic_id = $topic_id";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['Topic_Viewdata_Error'], '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
/* If it exists, we update the info */
if (isset($row['viewed_id']))
{
$views = $row['num_views'] + 1;
$sql = 'UPDATE ' . TOPICS_VIEWDATA_TABLE . "
SET num_views = $views,
last_viewed = " . time() . '
WHERE viewed_id = ' . $row['viewed_id'];
}
/* Else, we just insert the new default values */
else
{
$sql = "INSERT INTO " . TOPICS_VIEWDATA_TABLE . "
(user_id, topic_id, num_views, last_viewed, user_ip)
VALUES
($user_id, $topic_id, 1, ' . time() . ', '$user_ip')";
}
if (!$db->sql_query($sql))
{
print $sql;
message_die(GENERAL_ERROR, $lang['Topic_Viewdata_Error'], '', __LINE__, __FILE__, $sql);
}
}
Zoek in viewtopic.php
Wijzig dat in
Code: Selecteer alles
update_user_viewed($userdata['user_id'], $topic_id, $user_ip);
Nu moet je als het goed is het ip via decode_ip($row['user_ip']), uit de database kunnen halen.
Geplaatst: 15 jan 2005, 12:46
door maico
Al het oude verwijderd en het nieuwe erop.
Maar krijg deze melding:
Code: Selecteer alles
Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\beagleforum\includes\functions_user_viewed_posts.php on line 77
$sql = 'INSERT INTO ' . TOPICS_VIEWDATA_TABLE . "
(user_id, topic_id, num_views, last_viewed, user_ip)
VALUES
($user_id, $topic_id, 1, " . time() . ", "$user_ip')'; rood is 77
}
if (!$db->sql_query($sql))
Geplaatst: 15 jan 2005, 13:10
door Luuk
Doe het eens opnieuw, ik heb het namelijk mij post gewijzigt (na 2 minuten) en je hebt nog de 'oude' code.
Geplaatst: 15 jan 2005, 13:32
door maico
Ok foutmelding is weg.
Zo was het bij mij
en nu is het zo
Niets veranderd
Geplaatst: 15 jan 2005, 15:39
door Luuk
Heb je in het php bestand ook 'IP_ADDRESS' => decode_ip($row['user_ip']), staan?
Geplaatst: 15 jan 2005, 16:25
door maico
uhhhhhhhh........ nee dat had je ook niet gezegd he dat dat moest
Maar ik krijg het ook niet op de goed plaats schijnbaar want als ik het er wel inzet veranderd er niets.
ik heb hem voor mij op de meest logiche plaats gezet ik weet natuurlijk niet als dat goed is.
$template->assign_block_vars('viewedrow', array(
'TOPIC_TITLE' => $row['topic_title'],
'FORUM_NAME' => $row['forum_name'],
'FORUM_ID' => $row['forum_id'],
'TOPIC_ID' => $row['topic_id'],
'LAST_VIEWED' => create_date($board_config['default_dateformat'], $row['last_viewed'], $board_config['board_timezone']),
'IP_ADDRESS' => decode_ip($row['user_ip']),
'USER_ID' => $row['user_id'],
'NUM_VIEWS' => $row['num_views'])
);
Wel valt me nu net pas op dat de datum weg is:

Geplaatst: 15 jan 2005, 17:16
door Luuk
In de tpl moet je ook
Code: Selecteer alles
<td align="center" class="row3"><span class="genmed">{viewedrow.IP_ADDRESS}</span></td>
Gebruiken! Je ziet trouwens ook alleen maar het ip bij iemand die een topic heeft bekeken nadat je de wijziging in het php bestand hebt doorgevoerd.
Geplaatst: 15 jan 2005, 18:13
door maico
Luuk,
Als je een meid was en je zou het willen kwam ik je

Helemaal geweldig hij doet het
Ps als je vandaag of morgen wilt en tijd heb wil je me met dit probleempje dan ook helpen?
LINKJE
of
LINKJE
Dat zou echt geweldig zijn ik wil niet inhalig zijn maar daar heb ik al wat tiid in zitten en kom echt niet verder
Geplaatst: 16 jan 2005, 11:21
door maico
Te vlug geroepen
Soms registreerd hij het wel maar veel ook niet?
Voorbeeld van een gebruiker
Code: Selecteer alles
Zo, 16 Jan 2005 10:32 2 81.11.170.162
Zo, 16 Jan 2005 10:31 8 0.0.0.0
Zo, 16 Jan 2005 09:30 16 0.0.0.0
Za, 15 Jan 2005 23:23 11 0.0.0.0
Za, 15 Jan 2005 19:39 24 0.0.0.0
Za, 15 Jan 2005 19:38 8 0.0.0.0
Za, 15 Jan 2005 19:38 3 0.0.0.0
Za, 15 Jan 2005 19:37 2 81.11.170.162
Voorbeeld andere gebruiker helemaal geen IP
Code: Selecteer alles
Zo, 16 Jan 2005 09:27 6 0.0.0.0
Za, 15 Jan 2005 22:19 3 0.0.0.0
En zo is het bij allemaal anders soms wel registratie van IP, en vervolgens weer niets.
De ene gebruiker wel de andere niet.
Probleem van update van de gegevens?
Heb je enig idee hoe ik dit nog kan oplossen?
BVD
Geplaatst: 16 jan 2005, 13:58
door Luuk
Verander
Code: Selecteer alles
$sql = 'UPDATE ' . TOPICS_VIEWDATA_TABLE . "
SET num_views = $views,
last_viewed = " . time() . '
WHERE viewed_id = ' . $row['viewed_id'];
Dan eens in
Code: Selecteer alles
$sql = "UPDATE " . TOPICS_VIEWDATA_TABLE . "
SET num_views = $views,
last_viewed = " . time() . ",
user_ip = '$user_ip'
WHERE viewed_id = " . $row['viewed_id'];
Geplaatst: 16 jan 2005, 15:36
door maico
Hoi,
Net veranderd en zoals ik nu kan zien doet hij het nu wel goed :thumb:
Mocht het toch niet zo zijn hoor je het wel maar ik denk dat het goed is.
Bedankt maar weer.
Geplaatst: 17 jan 2005, 21:28
door maico
Hoi,
Tis nog niet zoals het moet zijn, 90% is goed zover ik kan zien maar vreemd genoeg pakt hij niet alle gebruikers mee met de update van de datum lijkt het wel?
Voorbeeldje