Function file get contents

Aus DSphpBB

(Weitergeleitet von Function get file contents)
Wechseln zu: Navigation, Suche

Manchmal kommt es bei Hostern dazu, dass ewige Ladezeiten und Fehlermeldungen bei Postings, im Admin-CP und beim Beiträge Lesen auftreten. Dies liegt daran, dass das Forum immer mit dem Stämme-Server verbindet, um die URL für die BB-Codes abzufragen. Jedoch verbieten manche Hoster diese Funktion.

Eine solche Fehlermeldung könnte in etwa so aussehen:

PHP-Fehler
Warning: file_get_contents(http://www.die-staemme.de/backend/get_servers.php):
failed to openstream: Connection timed out in
/home/www-data/htdocs/USERNAME.1/USERNAME/www/dsphpbb/includes/functions_staemme.php on line 200
Redio Webhosting
PHP-Fehler
Warning: Cannot modify header information - headers already sent by
(output started at /home/www-data/htdocs/USERNAME.1/USERNAME/www/dsphpbb/includes/functions_staemme.php:200) in
/home/www-data/htdocs/USERNAME.1/USERNAME/www/dsphpbb/includes/sessions.php on line 366
Redio Webhosting


Inhaltsverzeichnis

Lösung des Problems

Schritt 1

Dieser Schritt verhindert, dass der Fehler in Threads, Profil etc. auftritt

(function get_serverdomain)

Öffne:

/includes/functions_staemme.php


Suche:

function get_serverdomain($servername) {
  $file = file_get_contents('http://www.die-staemme.de/backend/get_servers.php');
  $servers = unserialize($file);
  $domain = $servers[$servername];
 
  if (empty($domain)) {
    return false;
  }
  else
  {
    return $domain;
  }
}


Ersetze durch:
Für die de-Welten:

function get_serverdomain($servername) {
  return "http://de**.die-staemme.de";
}

Für die ch-Welten:

function get_serverdomain($servername) {
  return "http://ch**.ds.ignames.net";
}

Die ** müssen durch die Nummer des Stämmeservers ersetzt werden!


Schritt 2

Dieser Schritt verhindert, dass der Fehler auch im ACP unter Stämme -> Einstellungen auftritt

(function server_select)

Öffne:

/includes/functions_staemme.php


Suche:

function server_select($default_server, $select_name = "default_server")
{
	$file = file_get_contents('http://www.die-staemme.de/backend/get_servers.php');
	$servers = unserialize($file);
 
	$server_select = '<select name="' . $select_name . '">';
	$server_select .= '<option value="--------">--------</option>' . "\n";
	while (list($key, $val) = each($servers)) {
		$name_key = $key;
 
		$name_key = ($name_key == 'dec1') ? 'Classic' : $name_key;
		$name_key = ($name_key == 'usds') ? 'SDS' : $name_key;
		$name_key = ($name_key == 'sds2') ? 'SDS 2' : str_replace('de', $lang['staemme_world'] . ' ', $name_key);
		$selected = ($key == $default_server) ? ' selected="selected"' : '';
		$server_select .= '<option value="' . $key . '"' .  $selected . '>' . $name_key . "</option>\n";
 
	}
	$server_select .= '</select>';
 
	return $server_select;
}


Ersetze durch:
Für die de-Welten:

function server_select($default_server, $select_name = "default_server")
{
	return '<select name="default_server"><option value="de**" selected="selected">Welt **</option></select>';
}

Für die ch-Welten:

function server_select($default_server, $select_name = "default_server")
{
	return '<select name="default_server"><option value="ch**" selected="selected">Welt **</option></select>';
}

Die ** müssen durch die Nummer des Stämmeservers ersetzt werden!

Schritt 3

Anschließend muss man im Admin-CP im Menüpunkte "Stämme" unter "Einstellungen" die Welt neu eintragen. Es ist normal, dass nur die Welt zur Auswahl steht, die man in den beiden Schritten eingetragen hat.

Dadurch sind zwar die Ladezeiten verkürzt, aber bei einer Namensänderung des Stämmeservers werden die BB-Codes falsch verlinkt. Da die Admins die Namen der Stämmeserver nur selten ändern, sollte dies kein Problem darstellen. in dem Fall muss man die oben beschriebenen Schritte neu ausführen.

Persönliche Werkzeuge