[2.0.x] Junior Admins

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Bandito

Beitrag von Bandito »

[EDIT]
Zuletzt geändert von Bandito am 12.07.2005 22:40, insgesamt 1-mal geändert.
Benutzeravatar
Yves
Mitglied
Beiträge: 10
Registriert: 07.07.2005 09:57
Wohnort: Garbsen
Kontaktdaten:

Beitrag von Yves »

Kann mir den niemand bei meinem Problem (vorige Seite) helfen? :-? Ich habe mir hier in der Topic ähnliche Beiträge durchgelesen aber alle Tips könnten mir nicht weiterhelfen. :(

Vieleicht wird ja jemand nun auf mein Problem aufmerksam :roll:

yves
Benutzeravatar
Yves
Mitglied
Beiträge: 10
Registriert: 07.07.2005 09:57
Wohnort: Garbsen
Kontaktdaten:

Beitrag von Yves »

Ups hatte vergessen die jr admin Erweiterung vom AACP zu installieren. Jetzt erscheint als Startseite für den jr admin im ACP die Klassische Seite.
:)
Doch wenn ich auf Admin Index klicke erscheint folgende Meldung:

Warning: Invalid argument supplied for foreach() in /forum/includes/functions_jr_admin.php on line 163


Allgemeiner Fehler
Das verlangte Modul existiert nicht oder du bist nicht authorisiert darauf zuzugreifen.

DEBUG MODE

Line : 50
File : pagestart.php


[Zeile 163:

Code: Alles auswählen

foreach($module as $cat => $module_data)
]

yves :wink:
rilib
Mitglied
Beiträge: 4
Registriert: 08.07.2005 16:32

PROBLEM!

Beitrag von rilib »

Hallo zusammen!

Habe ein Problem!

Habe alles installiert un wenn ich in das Administrationsmenu gehe, kommt folgender Fehler!

Warning: preg_match() expects parameter 2 to be string, array given in /usr/export/www/vhosts/funnetwork/hosting/rilib/phpBB2-2.0.16-deutsch/phpBB2/includes/sessions.php on line 416

Das Forum funktioniert, dass ist nur links zu sehen, wo eigentlich das Admin-Menu ist!

Danke für eure Mühen!!
Benutzeravatar
Yves
Mitglied
Beiträge: 10
Registriert: 07.07.2005 09:57
Wohnort: Garbsen
Kontaktdaten:

Beitrag von Yves »

@rilib
Was steht den in Zeile 416 deiner session.php und hast du irgendwelche anderen MODs installiert(ich kann nämlich keine Änderung in der session.php für den Jr Admin MOD finden)? Wird wohl warscheinlich ein Konflikt mit einem anderen MOD sein :roll:


yves :cookie:
rilib
Mitglied
Beiträge: 4
Registriert: 08.07.2005 16:32

Beitrag von rilib »

Weiß auch nicht was da sein soll ... habe hier drin nichts geändert!

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, 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, session_admin)
   VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $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);

 $SID = 'sid=' . $session_id;

 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;

 if ( !empty($SID) && !preg_match('#sid=#', $url) )
 {
  $url .= ( ( strpos($url, '?') != false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;
 }

 return $url;
}

?>

rilib
Mitglied
Beiträge: 4
Registriert: 08.07.2005 16:32

Beitrag von rilib »

Jemand eine Idee?
Maniac5000
Mitglied
Beiträge: 273
Registriert: 31.05.2005 08:43
Wohnort: Berlin
Kontaktdaten:

Beitrag von Maniac5000 »

nur als tipp für das nächste mal PHP Datei zum Download bereitstellen und verlinken
rilib
Mitglied
Beiträge: 4
Registriert: 08.07.2005 16:32

Beitrag von rilib »

OK!

Aber was denn nun mit meinem Problem???

:cry:
linkpz
Mitglied
Beiträge: 96
Registriert: 11.07.2005 13:02
Wohnort: Wien

Beitrag von linkpz »

entschuldigung das ich schon wieder störe!
ich habe jetzt nicht die zeit mir den ganzen thread durchzusuchen um eine antwort auf meine frage zu bekommen:
Allgemeiner Fehler

Ein Fehler ist aufgetreten.

DEBUG MODE

SQL Error : 1146 Table 'programmierzone.phpbb_jr_admin_users' doesn't exist

SELECT * FROM phpbb_jr_admin_users WHERE user_id = 2

Line : 132
File : functions_jr_admin.php


------------------------------------------------------------------------------------
der teil steht ganz unten

message_die() was called multiple times. This isn't supposed to happen. Was message_die() used in page_tail.php?




was ist los und wie kann ich das richtigstellen?
ich weiß leider nicht was das ganze heißt weil ich mich mit php 0.00%
auskenne!
bitte um hilfe!
kann jemand auch gleich rilib´s frage beantworten?
Antworten

Zurück zu „phpBB 2.0: Mod Support“