Statistik

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Hypnoseland
Mitglied
Beiträge: 112
Registriert: 14.04.2005 08:08
Kontaktdaten:

Beitrag von Hypnoseland »

Hallo,

nachdem unser Forum in Suchmaschinen nicht so gut platziert ist und wir außerdem noch 2.0.14 hatten, habe ich gestern Abend mit dem fertigen Seo-Forum upgedatet und wollte jetzt alle Mods neu installieren.

Anfangen wollte ich mit dem Last Visit Mod, der über den Easy Mod Installer installiert wird.
Den Eintrag phpbb_easymod hatte ich dazu in der Datenbank gelöscht.
Ich hatte vorher den Easy Mod Installer 0-1-13 und habe jetzt den 021a installiert.
Der Datenbank-Eintrag ist auch wieder da.

Dann bin ich den Anweisungen dieses Thread erneut gefolgt, um den Last Visit-Mod erneut zu installieren.
Beim Aufruf von http://www.selbsthypnose.at/forum/last_ ... update.php kam nicht die gleiche Bestätigung wie beim letzten Mal, sondern dies:

Code: Alles auswählen

This list is a result of the SQL queries needed for MOD


Last Visit PART 1 Mod
[Already added] line: 1 , ALTER TABLE phpbb_users ADD user_lastlogon INT (11) DEFAULT "0" not null
[Added/Updated] line: 2 , UPDATE phpbb_users SET user_lastlogon=user_lastvisit WHERE user_lastlogon="0"


Last Visit PART 2 Mod
[Already added] line: 3 , INSERT INTO phpbb_config (config_name, config_value) VALUES ("hidde_last_logon", "0")


Last Visit PART 4 Mod
[Already added] line: 4 , ALTER TABLE phpbb_users ADD user_totaltime INT (11) DEFAULT "0"
[Already added] line: 5 , ALTER TABLE phpbb_users ADD user_totallogon INT (11) DEFAULT "0"
[Already added] line: 6 , ALTER TABLE phpbb_users ADD user_totalpages INT (11) DEFAULT "0"
[Added/Updated] line: 7 , UPDATE phpbb_users SET user_totaltime=(user_session_time-user_lastlogon) WHERE user_totaltime="0" AND user_lastlogon>0
[Added/Updated] line: 8 , UPDATE phpbb_users SET user_totallogon=1 WHERE user_totallogon="0" AND user_session_time<>"0"
Ich hab keine Ahnung, ob das eine Bestätigung oder eine Fehlermeldung sein soll - jedoch ist es anders als beim letzten Mal, und da auch rotfarbener Text dabei steht, tippe ich mal, dass da was falsch ist.


Ich hab dann trotzdem vom Mod Center aus versucht, den Last Visit Mod zu installieren, woraufhin ich diese Fehlermeldungen und Infos erhalten habe:
Error Detail

Critical Error

FIND FAILED: In file [includes/sessions.php] could not find:

if (
{// (
$last_visit = (
$sql = "UPDATE " . USERS_TABLE . "
SET

MOD script line #509 :: FAQ :: Report



MOD Data
MOD Title: Last visit 1.2.8 last_visit_1.2.8em.txt
Author: Niels ncr@db9.dk Niels Chr. Rød http://mods.db9.dk
Processed Themes: subSilver
Processed Languages: english; german
Files Edited: 7
Commands Processed: 42
Unprocessed Commands: 0


The following commands were not recognized by EasyMOD and were ignored. The MOD script line number is displayed.
Unprocessed Commands


EasyMOD successfully processed the following commands:
Commands Processed
COPY line #157
copy last_visit_db_update.php to last_visit_db_update.php


OPEN line #175
index.php


FIND line #180
//
// Start output of page


BEFOREADD line #186
// Start add - Last visit MOD
$time_now=time();
$time1Hour=$time_now-3600;
$minutes = date('is', $time_now);
$hour_now = $time_now - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]);
$dato=create_date('H', $time_now,$board_config['board_timezone']);
$timetoday = $hour_now - (3600*$dato);
$sql = 'SELECT session_ip, MAX(session_time) as session_time FROM '.SESSIONS_TABLE.' WHERE session_user_id="'.ANONYMOUS.'" AND session_time >= '.$timetoday.' AND session_time< '.($timetoday+86399).' GROUP BY session_ip';
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve guest user today data", "", __LINE__, __FILE__, $sql);
while( $guest_list = $db->sql_fetchrow($result))
{
if ($guest_list['session_time'] >$time1Hour) $users_lasthour++;
}
$guests_today = $db->sql_numrows($result);
$sql = 'SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon FROM ' . USERS_TABLE . ' WHERE user_id!="'.ANONYMOUS.'" AND user_session_time >= '.$timetoday.' AND user_session_time< '.($timetoday+86399).' ORDER BY username';
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve user today data", "", __LINE__, __FILE__, $sql);
while( $todayrow = $db->sql_fetchrow($result))
{
$style_color = "";
if ($todayrow['user_lastlogon']>=$time1Hour)
{
$users_lasthour++;
}
switch ($todayrow['user_level'])
{
case ADMIN :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
break;
case MOD :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
break;
}
$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'>' . $todayrow['username'] . '</a>,' : (($userdata[user_level]==ADMIN) ? ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'><i>' . $todayrow['username'] . '</i></a>,' : '');
if (!$todayrow['user_allow_viewonline']) $logged_hidden_today++;
else $logged_visible_today++;
}
if ($users_today_list)
{
$users_today_list[ strlen( $users_today_list)-1] = ' ';
} else
{
$users_today_list = $lang['None'];
}
$total_users_today = $db->sql_numrows($result)+$guests_today;

$users_today_list = $lang['Registered_users'].' ' . $users_today_list;
$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_today_total'] : $lang['Users_today_total'] ) : $lang['Users_today_zero_total'];
$l_today_r_user_s = ($logged_visible_today) ? ( ( $logged_visible_today == 1 ) ? $lang['Reg_user_total'] : $lang['Reg_users_total'] ) : $lang['Reg_users_zero_total'];
$l_today_h_user_s = ($logged_hidden_today) ? (($logged_hidden_today == 1) ? $lang['Hidden_user_total'] : $lang['Hidden_users_total'] ) : $lang['Hidden_users_zero_total'];
$l_today_g_user_s = ($guests_today) ? (($guests_today == 1) ? $lang['Guest_user_total'] : $lang['Guest_users_total']) : $lang['Guest_users_zero_total'];
$l_today_users = sprintf($l_today_user_s, $total_users_today);
$l_today_users .= sprintf($l_today_r_user_s, $logged_visible_today);
$l_today_users .= sprintf($l_today_h_user_s, $logged_hidden_today);
$l_today_users .= sprintf($l_today_g_user_s, $guests_today);
// End add - Last visit MOD



FIND line #248
'FORUM_LOCKED_IMG' =>


AFTERADD line #253
// Start add - Last visit MOD
'USERS_TODAY_LIST' => $users_today_list,

'L_USERS_LASTHOUR' =>($users_lasthour)?sprintf($lang['Users_lasthour_explain'],$users_lasthour):$lang['Users_lasthour_none_explain'],
'L_USERS_TODAY' =>$l_today_users,
// End add - Last visit MOD



OPEN line #264
memberlist.php


FIND line #269
$mode_types_text =


IN-LINE FIND line #274
$lang['Sort_Joined']


IN-LINE AFTERADD line #279
, $lang['Last_logon']


FIND line #284
$mode_types =


IN-LINE FIND line #289
'joindate'


IN-LINE AFTERADD line #294
, 'lastlogon'


FIND line #299
for($i = 0


IN-LINE FIND line #304
0


IN-LINE REPLACE line #309
($userdata['user_level'] == ADMIN ) ? 0:1


FIND line #314
'L_JOINED' =>


AFTERADD line #319
// Start add - Last visit MOD
'L_LOGON' => $lang['Last_logon'],
// End add - Last visit MOD



FIND line #327
case 'joined':
$order_by =
break;


AFTERADD line #334
// Start add - Last visit MOD
case 'lastlogon':
$order_by = ($userdata['user_level'] == ADMIN ) ? "user_lastlogon $sort_order LIMIT $start, " . $board_config['topics_per_page'] : "username $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;
// End add - Last visit MOD



FIND line #344
$sql = "SELECT username


IN-LINE FIND line #349
, user_regdate


IN-LINE AFTERADD line #354
, user_lastlogon, user_allow_viewonline


FIND line #359
'JOINED' =>


AFTERADD line #364
// Start add - Last visit MOD
'LAST_LOGON' => ($userdata['user_level'] == ADMIN || (!$board_config['hidde_last_logon'] && $row['user_allow_viewonline'])) ? (($row['user_lastlogon'])? create_date($board_config['default_dateformat'], $row['user_lastlogon'], $board_config['board_timezone']):$lang['Never_last_logon']):$lang['Hidde_last_logon'],
// End add - Last visit MOD



OPEN line #372
search.php


FIND line #377
$sql = "SELECT session_id
FROM " . SESSIONS_TABLE;


REPLACE line #383
// Start replacement - Last visit MOD
$expiry_time = $current_time - $board_config['session_length'];
$sql = "SELECT session_id
FROM " . SESSIONS_TABLE ." WHERE session_time>$expiry_time";
// Start replacement - Last visit MOD



OPEN line #393
admin/admin_board.php


FIND line #398
$prune_no = (


AFTERADD line #403
// Start add - Last visit MOD
$hidde_last_logon_yes = ( $new['hidde_last_logon'] ) ? "checked=\"checked\"" : "";
$hidde_last_logon_no = ( !$new['hidde_last_logon'] ) ? "checked=\"checked\"" : "";
// End add - Last visit MOD



FIND line #412
"L_ENABLE_PRUNE" =>


AFTERADD line #417
// Start add - Last visit MOD
"L_HIDDE_LAST_LOGON" => $lang['Hidde_last_logon'],
"L_HIDDE_LAST_LOGON_EXPLAIN" => $lang['Hidde_last_logon_expain'],
// End add - Last visit MOD



FIND line #426
"PRUNE_NO" =>


AFTERADD line #431
// Start add - Last visit MOD
"HIDDE_LAST_LOGON_YES" => $hidde_last_logon_yes,
"HIDDE_LAST_LOGON_NO" => $hidde_last_logon_no,
// End add - Last visit MOD



OPEN line #440
includes/functions.php


FIND line #445
?>


BEFOREADD line #450
// Start add - Last visit MOD
function make_hours($base_time)
{
global $lang;
$years = floor($base_time/31536000);
$base_time = $base_time - ($years*31536000);
$weeks = floor($base_time/604800);
$base_time = $base_time - ($weeks*604800);
$days = floor($base_time/86400);
$base_time = $base_time - ($days*86400);
$hours = floor($base_time/3600);
$base_time = $base_time - ($hours*3600);
$min = floor($base_time/60);
$sek = $base_time - ($min*60);
if ($sek<10) $sek ='0'.$sek;
if ($min<10) $min ='0'.$min;
if ($hours<10) $hours ='0'.$hours;
$result=(($years)?$years.' '.(($years==1)?$lang['Year']:$lang['Years']).', ':'').
(($years || $weeks)?$weeks.' '.(($weeks==1)?$lang['Week']:$lang['Weeks']).', ':'').
(($years || $weeks || $days) ? $days.' '.(($days==1)?$lang['Day']:$lang['Days']).', ':'').
(($hours)?$hours.':':'00:').(($min)?$min.':' :'00:').$sek;
return ($result)?$result:$lang['None'];
}
// End add - Last visit MOD



OPEN line #479
includes/page_header.php


FIND line #484
//
// Get basic


BEFOREADD line #490
// Start add - Last visit MOD
if ( !$userdata['user_level']==MOD )
{
$template->assign_block_vars('switch_user_is_not_moderator', array());
} else
{
$template->assign_block_vars('switch_user_is_moderator', array());
}
// End add - Last visit MOD



OPEN line #504
includes/sessions.php


Kann damit irgendwer irgendwas anfangen und mir sagen, wie ich den Last Visit Mod für die neue Forenversion neu installieren kann?
Viele Grüße
Elmar und Petra
HYPNOSELAND-FORUM Seminare für Hypnose und Selbsthypnose
Hypnoseland
Mitglied
Beiträge: 112
Registriert: 14.04.2005 08:08
Kontaktdaten:

Beitrag von Hypnoseland »

Error Detail

Critical Error

FIND FAILED: In file [includes/sessions.php] could not find:

if (
{// (
$last_visit = (
$sql = "UPDATE " . USERS_TABLE . "
SET

MOD script line #509 :: FAQ :: Report
Ich hab zwar keine Ahnung davon, aber das hört sich an, als würde in der Sessions.php etwas fehlen.
Dies ist der Inhalt meiner sessions.php:

Code: Alles auswählen

<?php
/***************************************************************************
 *                                sessions.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: sessions.php,v 1.58.2.14 2005/05/06 20:50:11 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

//
// Adds/updates a new session to the database for the given userid.
// Returns the new session ID on success.
//
function session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0, $admin = 0)
{
	global $db, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
	{
		$session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$sessiondata = array();
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	//
	if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) 
	{
		$session_id = '';
	}

	$page_id = (int) $page_id;

	$last_visit = 0;
	$current_time = time();
	$expiry_time = $current_time - $board_config['session_length'];

	//
	// Try and pull the last time stored in a cookie, if it exists
	//
	$sql = "SELECT * 
		FROM " . USERS_TABLE . " 
		WHERE user_id = $user_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not obtain lastvisit data from user table', '', __LINE__, __FILE__, $sql);
	}

	$userdata = $db->sql_fetchrow($result);

	if ( $user_id != ANONYMOUS )
	{
		$auto_login_key = $userdata['user_password'];

		if ( $auto_create )
		{
			if ( isset($sessiondata['autologinid']) && $userdata['user_active'] )
			{
				// We have to login automagically
				if( $sessiondata['autologinid'] === $auto_login_key )
				{
					// autologinid matches password
					$login = 1;
					$enable_autologin = 1;
				}
				else
				{
					// No match; don't login, set as anonymous user
					$login = 0; 
					$enable_autologin = 0; 
					$user_id = $userdata['user_id'] = ANONYMOUS;
				
					$sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS;
					$result = $db->sql_query($sql);
					$userdata = $db->sql_fetchrow($result);
					$db->sql_freeresult($result);
				}
			}
			else
			{
				// Autologin is not set. Don't login, set as anonymous user
				$login = 0;
				$enable_autologin = 0;
				$user_id = $userdata['user_id'] = ANONYMOUS;

				$sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS;
				$result = $db->sql_query($sql);
				$userdata = $db->sql_fetchrow($result);
				$db->sql_freeresult($result);
			}
		}
		else
		{
			$login = 1;
		}
	}
	else
	{
		$login = 0;
		$enable_autologin = 0;
	}

	//
	// Initial ban check against user id, IP and email address
	//
	preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);

	$sql = "SELECT ban_ip, ban_userid, ban_email 
		FROM " . BANLIST_TABLE . " 
		WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" . $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" . $user_ip_parts[1] . "ffffff')
			OR ban_userid = $user_id";
	if ( $user_id != ANONYMOUS )
	{
		$sql .= " OR ban_email LIKE '" . str_replace("\'", "''", $userdata['user_email']) . "' 
			OR ban_email LIKE '" . substr(str_replace("\'", "''", $userdata['user_email']), strpos(str_replace("\'", "''", $userdata['user_email']), "@")) . "'";
	}
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);
	}

	if ( $ban_info = $db->sql_fetchrow($result) )
	{
		if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )
		{
			message_die(CRITICAL_MESSAGE, 'You_been_banned');
		}
	}

	//
	// Create or update the session
	//
	$sql = "UPDATE " . SESSIONS_TABLE . "
		SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, SearchBot = ". $_SERVER["HTTP_USER_AGENT"] .", session_admin = $admin
		WHERE session_id = '" . $session_id . "' 
			AND session_ip = '$user_ip'";
	if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )
	{
		list($sec, $usec) = explode(' ', microtime());
		mt_srand((float) $sec + ((float) $usec * 100000));
		$session_id = md5(uniqid(mt_rand(), true));

		$sql = "INSERT INTO " . SESSIONS_TABLE . "
			(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, SearchBot, session_admin)
			VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, '". $_SERVER["HTTP_USER_AGENT"] ."', $admin)";
		if ( !$db->sql_query($sql) )
		{
			message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);
		}
	}

	if ( $user_id != ANONYMOUS )
	{// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : ( 
		$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 

		if (!$admin)
		{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);
			}
		}

		$userdata['user_lastvisit'] = $last_visit;

		$sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologinid'];
		$sessiondata['userid'] = $user_id;
	}

	$userdata['session_id'] = $session_id;
	$userdata['session_ip'] = $user_ip;
	$userdata['session_user_id'] = $user_id;
	$userdata['session_logged_in'] = $login;
	$userdata['session_page'] = $page_id;
	$userdata['session_start'] = $current_time;
	$userdata['session_time'] = $current_time;
	$userdata['session_admin'] = $admin;

	setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
	setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);

	if ( $userdata['session_user_id'] != ANONYMOUS || $userdata['session_page'] == -4 || $userdata['session_page'] == -2 ){
    $SID = 'sid=' . $session_id;
	} else {
	   $SID = '';
	}

	return $userdata;
}

//
// Checks for a given user session, tidies session table and updates user
// sessions at each page refresh
//
function session_pagestart($user_ip, $thispage_id)
{
	global $db, $lang, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	$current_time = time();
	unset($userdata);

	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
	{
		$sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
		$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$sessiondata = array();
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	// 
	if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
	{
		$session_id = '';
	}

	$thispage_id = (int) $thispage_id;

	//
	// Does a session exist?
	//
	if ( !empty($session_id) )
	{
		//
		// session_id exists so go ahead and attempt to grab all
		// data in preparation
		//
		$sql = "SELECT u.*, s.*
			FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
			WHERE s.session_id = '$session_id'
				AND u.user_id = s.session_user_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
		}

		$userdata = $db->sql_fetchrow($result);

		//
		// Did the session exist in the DB?
		//
		if ( isset($userdata['user_id']) )
		{
			//
			// Do not check IP assuming equivalence, if IPv4 we'll check only first 24
			// bits ... I've been told (by vHiker) this should alleviate problems with 
			// load balanced et al proxies while retaining some reliance on IP security.
			//
			$ip_check_s = substr($userdata['session_ip'], 0, 6);
			$ip_check_u = substr($user_ip, 0, 6);

			if ($ip_check_s == $ip_check_u)
			{
				$SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';

				//
				// Only update session DB a minute or so after last update
				//
				if ( $current_time - $userdata['session_time'] > 60 )
				{
					// A little trick to reset session_admin on session re-usage
					$update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', session_admin = 0' : '';

					$sql = "UPDATE " . SESSIONS_TABLE . " 
						SET session_time = $current_time, session_page = $thispage_id$update_admin
						WHERE session_id = '" . $userdata['session_id'] . "'";
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
					}

					if ( $userdata['user_id'] != ANONYMOUS )
					{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time, user_session_page = $thispage_id
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
						}
					}

					//
					// Delete expired sessions
					//
					$expiry_time = $current_time - $board_config['session_length'];

					$sql = "DELETE FROM " . SESSIONS_TABLE . " 
						WHERE session_time < $expiry_time 
							AND session_id <> '$session_id'";
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);
					}

					setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
					setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
				}

				return $userdata;
			}
		}
	}

	//
	// If we reach here then no (valid) session exists. So we'll create a new one,
	// using the cookie user_id if available to pull basic user prefs.
	//
	$user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;

	if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )
	{
		message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);
	}

	return $userdata;

}

//
// session_end closes out a session
// deleting the corresponding entry
// in the sessions table
//
function session_end($session_id, $user_id)
{
	global $db, $lang, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	$current_time = time();

	//
	// Pull cookiedata or grab the URI propagated sid
	//
	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) )
	{
		$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
	{
		return;
	}
	
	//
	// Delete existing session
	//
	$sql = "DELETE FROM " . SESSIONS_TABLE . " 
		WHERE session_id = '$session_id' 
			AND session_user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);
	}

	setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
	setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);

	return true;
}

//
// Append $SID to a url. Borrowed from phplib and modified. This is an
// extra routine utilised by the session code above and acts as a wrapper
// around every single URL and form action. If you replace the session
// code you must include this routine, even if it's empty.
//
function append_sid($url, $non_html_amp = false)
{
	global $SID,$HTTP_SERVER_VARS,$db,$board_config;
	if( strstr($url,'viewtopic.php') && !strstr($url,'viewtopic.php?replace') )
	{
		if(ereg("#",$url)) {
		$pos=strpos($url, "#");
		$url_temp=substr($url,0,$pos);
		$zusatz=substr($url,$pos,strlen($url));
		$url=$url_temp;
	}
	else
	{
		$zusatz="";
	}

	$found=false;
	$found_subject_topic=false;
	$found_subject_forum=false;
	
	if( preg_match('#viewtopic.php\?p=#', $url) )
	{
		$prg=str_replace("viewtopic.php?","",$url);
		parse_str($prg, $prg_output);

		$sql = "SELECT topic_id
		FROM " . POSTS_TABLE . "
		WHERE post_id = '".$prg_output['p']."'";
		if ($result = $db->sql_query($sql))
		{
			$row = $db->sql_fetchrow($result);
			$prg_output['t'] = $row['topic_id'];

			$sql = "SELECT post_id
			FROM " . POSTS_TABLE . "
			WHERE post_id < '".$prg_output['p']."'
			AND topic_id = '".$prg_output['t']."'";
			if ($result = $db->sql_query($sql))
			{
				$c = $db->sql_numrows($result)+1;
				if ($board_config['posts_per_page'] < $c)
				$prg_output['start'] = floor(($c-1) / $board_config['posts_per_page']) * $board_config['posts_per_page'];
			}
			if (isset($prg_output['start']))
				$url = preg_replace('#viewtopic.php\?p='.$prg_output['p'].'#','ftopic'.$prg_output['t'].'-'.$prg_output['start'].'.html',$url);
			else
				$url = preg_replace('#viewtopic.php\?p='.$prg_output['p'].'#','ftopic'.$prg_output['t'].'.html',$url);
			unset($prg_output['p']);
			}
			$url=$board_config['script_path']."/$url";
		}
	}

if (areyouabot($_SERVER["HTTP_USER_AGENT"], TRUE) != 1) {
	if ( !empty($SID) && !preg_match('#sid=#', $url) )
	{
		$url .= ( ( strpos($url, '?') != false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;
	}}

	return $url;
}

?>

Kann jemand erkennen, ob darin etwas falsch ist?
Oder liegt es doch an der Datenbank? Ich weiß nicht, ob obiges eine Bestätigung oder eine Fehlermeldung des Datenbankeintrages ist.


Falls jemand damit was anfangen kann - das steht in der Datenbank:

Code: Alles auswählen

Tabelle    Aktion    Einträge    Typ    Größe    Überhang   
   phpbb_auth_access                42   MyISAM      3,7 KB      -   
   phpbb_banlist                7   MyISAM      3,4 KB     260 Bytes  
   phpbb_categories                10   MyISAM      3,3 KB      -   
   phpbb_config                75   MyISAM      5,0 KB      -   
   phpbb_confirm                0   MyISAM      1,0 KB      -   
   phpbb_disallow                1   MyISAM      2,0 KB      -   
   phpbb_easymod                1   MyISAM      2,3 KB      -   
   phpbb_forum_prune                2   MyISAM      3,0 KB      -   
   phpbb_forums                32   MyISAM      10,1 KB      -   
   phpbb_groups                120   MyISAM      5,9 KB      -   
   phpbb_posts                2.250   MyISAM      164,4 KB      -   
   phpbb_posts_text                2.250   MyISAM      1,8 MB      -   
   phpbb_privmsgs                486   MyISAM      40,2 KB      -   
   phpbb_privmsgs_text                486   MyISAM      342,4 KB      -   
   phpbb_ranks                19   MyISAM      2,5 KB      -   
   phpbb_search_results                1   MyISAM      10,5 KB     7.388 Bytes  
   phpbb_search_wordlist                21.884   MyISAM      818,9 KB      -   
   phpbb_search_wordmatch                94.389   MyISAM      2,2 MB      -   
   phpbb_sessions                33   MyISAM      58,3 KB     24.806 Bytes  
   phpbb_smilies                68   MyISAM      4,7 KB      -   
   phpbb_themes                1   MyISAM      2,4 KB      -   
   phpbb_themes_name                2   MyISAM      4,9 KB      -   
   phpbb_topics                343   MyISAM      109,5 KB      -   
   phpbb_topics_watch                188   MyISAM      9,5 KB      -   
   phpbb_user_group                122   MyISAM      4,0 KB      -   
   phpbb_users                118   MyISAM      30,1 KB      -   
   phpbb_vote_desc                5   MyISAM      3,4 KB      -   
   phpbb_vote_results                18   MyISAM      3,7 KB      -   
   phpbb_vote_voters                25   MyISAM      4,4 KB      -   
   phpbb_words                14   MyISAM      4,8 KB      -   
  30 Tabellen   Gesamt  122.992  --    5,6 MB    31,7 KB 
Viele Grüße
Elmar und Petra
HYPNOSELAND-FORUM Seminare für Hypnose und Selbsthypnose
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“