Länk till Administrationskonsollen

Här kan du ställa frågor om problem med och drift av phpBB 3 (3.0.0 eller senare). Det är här du bör skapa en tråd om du har ett problem, vill ställa en fråga och vill ha ett svar. Gäller det något annat, var vänlig bläddra nedåt på sidan.

Moderatorer: Supportgrupp, Moderatorgrupp

Kategoriregler
Här kan du ställa frågor om problem med och drift av phpBB 3 (3.0.0 eller senare). Det är här du bör skapa en tråd om du har ett problem, vill ställa en fråga och vill ha ett svar. Gäller det något annat, var vänlig bläddra nedåt på forumindex.

Klicka här för att se våra allmänna forumregler.
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6561
Blev medlem: 2004-06-09 09:32
Svar: 1

Re: Länk till Administrationskonsollen

Inlägg av Holger »

I includes/functions.php:

Kod: Markera allt

		'U_ACP' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])) ? append_sid("{$phpbb_root_path}adm/index.$phpEx", false, true, $user->session_id) : '')
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6561
Blev medlem: 2004-06-09 09:32
Svar: 1

Re: Länk till Administrationskonsollen

Inlägg av Holger »

Jag tror fortfarande att du har ett problem med phpbb_root_path ... det är något som inte stämmer där ...
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Marcus
Hedersmedlem
Hedersmedlem
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Marcus »

Ev. kan det vara ett fel på filen som åstadkommer själva $phpbb_root_path...

Men då skulle du ha en massa problem med hela forumet. T.ex. används ju den variabeln vid alla
includes av filer. T.ex. require($phpbb_root_path . 'config.' . $phpEx);

Så det verkar mer luta åt att det är ett fel på din antingen temat eller på det som skapar den där
länken.

/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Användarens profilbild
Marcus
Hedersmedlem
Hedersmedlem
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Marcus »

Inne på ett nytt spår...

Jag utgår nu ifrån att du helt korrekt inte ställt in att att sökvägen ska vara tvingande...

Och då verkar det vara en parameter som styr servernamnet...

$user->host


Jag ska kolla vad det är den levererar.

/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Användarens profilbild
Marcus
Hedersmedlem
Hedersmedlem
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Marcus »

I filen includes/session.php så tar den reda på vilken serverns namn, och skapar därigenom egenskapen "host" för varje instans av klassen "user" (som också hanteras i denna fil).

Ev. är det något fel på den filen på din installation. Antingen på rad 142 (och framåt), där finns:

function extract_current_hostname()

Denna funktion körs först, det den får fram matas in i funktionen på rad 42 (och framåt):

function extract_current_page($root_path)

Det är rätt mastiga kodstycken... men här kommer det hur det "ska se ut" (därmed inte sagt att det inte finns en bugg i den koden).

Kod: Markera allt

	/**
	* Extract current session page
	*
	* @param string $root_path current root path (phpbb_root_path)
	*/
	function extract_current_page($root_path)
	{
		$page_array = array();

		// First of all, get the request uri...
		$script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
		$args = (!empty($_SERVER['QUERY_STRING'])) ? explode('&', $_SERVER['QUERY_STRING']) : explode('&', getenv('QUERY_STRING'));

		// If we are unable to get the script name we use REQUEST_URI as a failover and note it within the page array for easier support...
		if (!$script_name)
		{
			$script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
			$script_name = (($pos = strpos($script_name, '?')) !== false) ? substr($script_name, 0, $pos) : $script_name;
			$page_array['failover'] = 1;
		}

		// Replace backslashes and doubled slashes (could happen on some proxy setups)
		$script_name = str_replace(array('\\', '//'), '/', $script_name);

		// Now, remove the sid and let us get a clean query string...
		$use_args = array();

		// Since some browser do not encode correctly we need to do this with some "special" characters...
		// " -> %22, ' => %27, < -> %3C, > -> %3E
		$find = array('"', "'", '<', '>');
		$replace = array('%22', '%27', '%3C', '%3E');

		foreach ($args as $key => $argument)
		{
			if (strpos($argument, 'sid=') === 0)
			{
				continue;
			}

			$use_args[] = str_replace($find, $replace, $argument);
		}
		unset($args);

		// The following examples given are for an request uri of {path to the phpbb directory}/adm/index.php?i=10&b=2

		// The current query string
		$query_string = trim(implode('&', $use_args));

		// basenamed page name (for example: index.php)
		$page_name = basename($script_name);
		$page_name = urlencode(htmlspecialchars($page_name));

		// current directory within the phpBB root (for example: adm)
		$root_dirs = explode('/', str_replace('\\', '/', phpbb_realpath($root_path)));
		$page_dirs = explode('/', str_replace('\\', '/', phpbb_realpath('./')));
		$intersection = array_intersect_assoc($root_dirs, $page_dirs);

		$root_dirs = array_diff_assoc($root_dirs, $intersection);
		$page_dirs = array_diff_assoc($page_dirs, $intersection);

		$page_dir = str_repeat('../', sizeof($root_dirs)) . implode('/', $page_dirs);

		if ($page_dir && substr($page_dir, -1, 1) == '/')
		{
			$page_dir = substr($page_dir, 0, -1);
		}

		// Current page from phpBB root (for example: adm/index.php?i=10&b=2)
		$page = (($page_dir) ? $page_dir . '/' : '') . $page_name . (($query_string) ? "?$query_string" : '');

		// The script path from the webroot to the current directory (for example: /phpBB3/adm/) : always prefixed with / and ends in /
		$script_path = trim(str_replace('\\', '/', dirname($script_name)));

		// The script path from the webroot to the phpBB root (for example: /phpBB3/)
		$script_dirs = explode('/', $script_path);
		array_splice($script_dirs, -sizeof($page_dirs));
		$root_script_path = implode('/', $script_dirs) . (sizeof($root_dirs) ? '/' . implode('/', $root_dirs) : '');

		// We are on the base level (phpBB root == webroot), lets adjust the variables a bit...
		if (!$root_script_path)
		{
			$root_script_path = ($page_dir) ? str_replace($page_dir, '', $script_path) : $script_path;
		}

		$script_path .= (substr($script_path, -1, 1) == '/') ? '' : '/';
		$root_script_path .= (substr($root_script_path, -1, 1) == '/') ? '' : '/';

		$page_array += array(
			'page_name'			=> $page_name,
			'page_dir'			=> $page_dir,

			'query_string'		=> $query_string,
			'script_path'		=> str_replace(' ', '%20', htmlspecialchars($script_path)),
			'root_script_path'	=> str_replace(' ', '%20', htmlspecialchars($root_script_path)),

			'page'				=> $page,
			'forum'				=> (isset($_REQUEST['f']) && $_REQUEST['f'] > 0) ? (int) $_REQUEST['f'] : 0,
		);

		return $page_array;
	}

	/**
	* Get valid hostname/port. HTTP_HOST is used, SERVER_NAME if HTTP_HOST not present.
	*/
	function extract_current_hostname()
	{
		global $config;

		// Get hostname
		$host = (!empty($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME'));

		// Should be a string and lowered
		$host = (string) strtolower($host);

		// If host is equal the cookie domain or the server name (if config is set), then we assume it is valid
		if ((isset($config['cookie_domain']) && $host === $config['cookie_domain']) || (isset($config['server_name']) && $host === $config['server_name']))
		{
			return $host;
		}

		// Is the host actually a IP? If so, we use the IP... (IPv4)
		if (long2ip(ip2long($host)) === $host)
		{
			return $host;
		}

		// Now return the hostname (this also removes any port definition). The http:// is prepended to construct a valid URL, hosts never have a scheme assigned
		$host = @parse_url('http://' . $host);
		$host = (!empty($host['host'])) ? $host['host'] : '';

		// Remove any portions not removed by parse_url (#)
		$host = str_replace('#', '', $host);

		// If, by any means, the host is now empty, we will use a "best approach" way to guess one
		if (empty($host))
		{
			if (!empty($config['server_name']))
			{
				$host = $config['server_name'];
			}
			else if (!empty($config['cookie_domain']))
			{
				$host = (strpos($config['cookie_domain'], '.') === 0) ? substr($config['cookie_domain'], 1) : $config['cookie_domain'];
			}
			else
			{
				// Set to OS hostname or localhost
				$host = (function_exists('php_uname')) ? gethostbyaddr(gethostbyname(php_uname('n'))) : 'localhost';
			}
		}

		// It may be still no valid host, but for sure only a hostname (we may further expand on the cookie domain... if set)
		return $host;
	}
Antingen via en bugg i den koden, fel i just din kod eller ett fel på din server... eller en mix av några/alla dessa... verkar det rimligt att du får den där konstiga URL:en...

/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Svardh
Medlem
Medlem
Inlägg: 10
Blev medlem: 2009-09-02 14:46
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Svardh »

Nu har jag installerat om forumet några gånger, och felet uppstår när forumet installeras i roten på domänadressen (luddigt beskrivet) och scriptpath sätts till /. Installerar jag däremot forumet ifrån en undermapp, phpbb3 till exempel, då sätts ju scriptpath till /phpbb3 och då funkar allt. Men så vill jag inte ha det utan användarna ska ju komma direkt till forumet och inte via länk som iofs skulle lösa adressproblemet.
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6561
Blev medlem: 2004-06-09 09:32
Svar: 1

Re: Länk till Administrationskonsollen

Inlägg av Holger »

Installera i /phpBB3/
Flytta ner filerna till roten
Ändra path till / i phpbb_config
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Kjell
Hedersmedlem
Hedersmedlem
Inlägg: 4510
Blev medlem: 2006-11-11 23:35
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Kjell »

Holger skrev:Ändra path till / i phpbb_config
Nu hänger inte jag med.... Behöver inte ändra config.php eller andra ställen för att det ska fungera, det är bara om man har ställt in andra värden under Cookieinställningar som är normalt är avslagen.
/Kjelle KonsultPoolen * Facebook * Twitter * MODx Verkstan
Brukar sova lite efter 29:e timman och Ingen support via PM!
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6561
Blev medlem: 2004-06-09 09:32
Svar: 1

Re: Länk till Administrationskonsollen

Inlägg av Holger »

Det är inte stor skillnad på phpbb_config och config.php som ord, men skillnaden är relevant. :wink:
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Kjell
Hedersmedlem
Hedersmedlem
Inlägg: 4510
Blev medlem: 2006-11-11 23:35
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Kjell »

Men om du menar databastabellen config med prefix phpbb_ (vilket kan vara olika), så vet jag inte varför något ska ändras där heller... alla sökvägar är från "forumrot"..
/Kjelle KonsultPoolen * Facebook * Twitter * MODx Verkstan
Brukar sova lite efter 29:e timman och Ingen support via PM!
Svardh
Medlem
Medlem
Inlägg: 10
Blev medlem: 2009-09-02 14:46
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Svardh »

Testade att installera i phpbb3 och flyttade ner forumet till roten, ändrade scriptpath till / och då återuppstår problemet.
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6561
Blev medlem: 2004-06-09 09:32
Svar: 1

Re: Länk till Administrationskonsollen

Inlägg av Holger »

Kjell skrev:Men om du menar databastabellen config med prefix phpbb_ (vilket kan vara olika), så vet jag inte varför något ska ändras där heller... alla sökvägar är från "forumrot"..
Du menar alltså att man ska låta sökvägen vara som den är när man flyttar forumet till en annan katalog/mapp? :?
Okej.

Ursäkta, men jag lämnar den här tråden nu.
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Kjell
Hedersmedlem
Hedersmedlem
Inlägg: 4510
Blev medlem: 2006-11-11 23:35
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Kjell »

Ja, man också inte ska tvinga den till en annan sökväg, vilket man kan göra via "URL-inställningar för servern" och den är också normalt avslagen.
Man kan lägga forumet som en subbdomän och en som vanlig domän ock köra från båda utan problem mot samma databastabeller, men "tvingar" man den så kan man inte göra det.
/Kjelle KonsultPoolen * Facebook * Twitter * MODx Verkstan
Brukar sova lite efter 29:e timman och Ingen support via PM!
Användarens profilbild
Marcus
Hedersmedlem
Hedersmedlem
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Marcus »

Svardh skrev:Testade att installera i phpbb3 och flyttade ner forumet till roten, ändrade scriptpath till / och då återuppstår problemet.
Jag vill att du testar:

Tvingande sökvägar, för uppenbarligen klar inte den automatiska sökvägshanteringen av det på din server. Dvs. jag tror att det är något med din server som gör att att när den kör det där i /includes/session.php som jag pratade om så kan den inte hantera att det blir "/" och svänger till det med en massa om hur phpBB ligger placerat på själva disken.

Detta kan du ändra på flera sätt.
  1. Vid installation
  2. Via ACP, men jag vet inte om du komma åt den... via att skriva in adressen till ACP manuellt.
  3. I databasen, i tabellen phpbb_config, så kan du leta upp:

    force_server_var -> 0
    script_path -> /
    server_name -> <din server>
    server_port -> 80
    server_protocol -> http://

    Ändra den översta till en 1:a.
/marcus

/PS!
Eftersom du inte t.ex. talar om vad du har för PHP-version, Server och version av server m.m. så kan detta vara helt käpprätt... men som sagt var, mer info till oss ger oss mer möjligheter att svara "spot on".
DS!
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Svardh
Medlem
Medlem
Inlägg: 10
Blev medlem: 2009-09-02 14:46
Svar: 0

Re: Länk till Administrationskonsollen

Inlägg av Svardh »

Eftersom du inte t.ex. talar om vad du har för PHP-version, Server och version av server m.m. så kan detta vara helt käpprätt... men som sagt var, mer info till oss ger oss mer möjligheter att svara "spot on".
DS!
Server: windows 2003 med IIS 6.0
PHP: 5.2.6
Mysql: 5.0.67

Jag har testat ovanstående, men det påverkar inte det minsta. Jag kommer åt acp om jag tar bort den felande delen i adressfältet manuellt.

//Dan
Skriv svar

Vilka är online

Användare som besöker denna kategori: 1 och 0 gäst