Seite 48 von 83

Verfasst: 12.07.2005 10:44
von Bandito
[EDIT]

Verfasst: 12.07.2005 16:02
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

Verfasst: 12.07.2005 17:17
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:

PROBLEM!

Verfasst: 12.07.2005 19:06
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!!

Verfasst: 12.07.2005 22:50
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:

Verfasst: 13.07.2005 05:51
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;
}

?>


Verfasst: 13.07.2005 16:45
von rilib
Jemand eine Idee?

Verfasst: 13.07.2005 16:48
von Maniac5000
nur als tipp für das nächste mal PHP Datei zum Download bereitstellen und verlinken

Verfasst: 13.07.2005 19:56
von rilib
OK!

Aber was denn nun mit meinem Problem???

:cry:

Verfasst: 13.07.2005 22:10
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?