[3.3] Notfall-Formular für Servereinstellungen

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Antworten
Benutzeravatar
chris1278
Mitglied
Beiträge: 3903
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

[3.3] Notfall-Formular für Servereinstellungen

Beitrag von chris1278 »

SO ich habe mich mal drangesetzt eine Datei zu schreiben, womit man die Server und Cookie Einstellungen ändern kann.

Mir kam das in den Sinn wegen folgender Problematik.

Manchmal kommt es vor, das man aus einem mir unbekannten Grund man sich nicht mehr einloggen kann und z. B. ein Fehler kommt, mit folgender Meldung:

Das übermittelte Formular war ungültig. Versuche erneut, das Formular abzusenden.

Dies könnte in der Regel an fehlerhaften Server bzw. Cookie Einstellungen liegen.

Sollte man sich deswegen also nicht mehr einloggen können, habe ich ein php Datei Erstellt.

Dazu Kopiere nachfolgenden code:

Code: Alles auswählen

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
global $db, $request;


define('DB', $db);
define('REQUEST', $request);

$cookie_domain		= read_config_info('cookie_domain');
$cookie_name		= read_config_info('cookie_name');
$cookie_path		= read_config_info('cookie_path');
$cookie_secure		= read_config_info('cookie_secure');
$server_name		= read_config_info('server_name');
$server_port		= read_config_info('server_port');
$server_protocol	= read_config_info('server_protocol');
$script_path		= read_config_info('script_path');
$force_server_vars	= read_config_info('force_server_vars');

function read_config_info($value)
{
	$sql = 'SELECT config_value
			FROM ' . CONFIG_TABLE . '
			WHERE ' . DB->sql_in_set('config_name ', $value);
	$result = DB->sql_query($sql);
	$row	= DB->sql_fetchrowset ($result);
	DB->sql_freeresult($result);

	$read_config_info	= $row['0']['config_value'];

	return $read_config_info;
}




$cookiesecure_yes	= '';
$cookiesecure_no  = '';

if ($cookie_secure == 1)
{
	$cookiesecure_yes	= 'checked';
}
else
{
	$cookiesecure_no = 'checked';
}

$https_must_yes	= '';
$https_must_no  = '';

if ($force_server_vars == 1)
{
	$https_must_yes	= 'checked';
}
else
{
	$https_must_no = 'checked';
}

echo'
<h1>Notfalleinstellungen für die Server und Cookie Einstellungen</h1>

<span style="font-size: 24px; font-weight: bold;">Hier kannst du die Einstellungen zu Server und Cookies sehen. Die Einstellungen spiegeln die aktuell eingestellten Werte Wieder. Diese Werte kannst du auch ändern und durch betätigen des Buttons Absenden in die Datenbank eintragen. <br><br>Beachte bitte das die Änderung der Einstellungen auswirkungen auf den Betrieb deines Forums haben können. Daher benutze dies nur mit bedacht.</span>
<br><br>
<span style="color: red;font-size: 24px; font-weight: bold;">Wichtig: Bitte mache vorher in jedemfall ein Datenbank Backup und wenn du fertig bist lösche diese Datei unbedingt wieder!</span>

<br><br>

<form action="cookiecheck.php" method="post">
<fieldset>
<legend>Cookies</legend>
	<dl style="overflow: hidden;">
		<dt style="float: left; width: 25%;">
			Cookie-Domain:
		</dt>
		<dd>
			<input type="text" size="10" maxlength="10" name="cookie_domain" value="' . $cookie_domain . '">
		</dd>
	</dl>
	<dl style="overflow: hidden;">
		<dt style="float: left; width:25%;">
			Cookie-Name:
		</dt>
		<dd>
			<input type="text" size="10" maxlength="10" name="cookie_name" value="' . $cookie_name . '">
		</dd>
	</dl>
	<dl style="overflow: hidden;">
		<dt style="float: left; width:25%;">
			Cookie-Pfad:
		</dt>
		<dd>
			<input type="text" size="10" maxlength="10" name="cookie_path" value="' . $cookie_path . '">
		</dd>
	</dl>
	<dl style="overflow: hidden;">
		<dt style="float: left; width:25%;">
			Sicherer Server:
		</dt>
		<dd>
			<input type="radio" name="cookiesecure" value="1" ' . $cookiesecure_yes . ' class="radio"> Aktiviert
			<input type="radio" name="cookiesecure" value="0" ' . $cookiesecure_no . ' class="radio"> Deaktiviert
		</dd>
	</dl>
</fieldset>
<fieldset>
<legend>Server URL - Einstellungen</legend>
	<dl style="overflow: hidden;">
		<dt style="float: left; width: 25%;">
			Erzwinge Server - URL-Einstellungen:
		</dt>
		<dd>
			<input type="radio" name="force_server_vars" value="1" ' . $https_must_yes . ' class="radio"> Ja
			<input type="radio" name="force_server_vars" value="0" ' . $https_must_no . ' class="radio"> Nein
		</dd>
	</dl>
	<dl style="overflow: hidden;">
		<dt style="float: left; width:25%;">
			Server - Protokoll:
		</dt>
		<dd>
			<input type="text" size="10" maxlength="10" name="server_protocol" value="' . $server_protocol . '">
		</dd>
	</dl>
	<dl style="overflow: hidden;">
		<dt style="float: left; width:25%;">
			Domain - Name:
		</dt>
		<dd>
			<input type="text" size="10" maxlength="10" name="server_name" value="' . $server_name . '">
		</dd>
	</dl>
	<dl style="overflow: hidden;">
		<dt style="float: left; width:25%;">
			Scriptpfad:
		</dt>
		<dd>
			<input type="text" size="10" maxlength="10" name="script_path" value="' . $script_path . '">
		</dd>
	</dl>
</fieldset>
	<input type="submit" name="submit" value="Absenden">
</form>
';

// REQUEST->variable('probe', '');
if (REQUEST->is_set_post('submit'))
{
	$sql_update = [
		'config_value'		=> REQUEST->variable('cookie_domain', ''),
	];

	config_update($sql_update, 'cookie_domain');

	$sql_update = [
		'config_value'		=> REQUEST->variable('cookie_name', ''),
	];

	config_update($sql_update, 'cookie_name');

	$sql_update = [
		'config_value'		=> REQUEST->variable('cookie_path', ''),
	];

	config_update($sql_update, 'cookie_path');

	$sql_update = [
		'config_value'		=> REQUEST->variable('cookiesecure', 0),
	];

	config_update($sql_update, 'cookie_secure');

	$sql_update = [
		'config_value'		=> REQUEST->variable('server_name', ''),
	];

	config_update($sql_update, 'server_name');

	$sql_update = [
		'config_value'		=> REQUEST->variable('server_port', ''),
	];

	config_update($sql_update, 'server_port');

	$sql_update = [
		'config_value'		=> REQUEST->variable('script_path', ''),
	];

	config_update($sql_update, 'script_path');

	$sql_update = [
		'config_value'		=> REQUEST->variable('server_protocol', ''),
	];

	config_update($sql_update, 'server_protocol');



	$sql_update = [
		'config_value'		=> REQUEST->variable('force_server_vars', 0),
	];

	config_update($sql_update, 'force_server_vars');
	REQUEST->enable_super_globals();
	header('location:../' . $_SERVER['PHP_SELF']);
	REQUEST->disable_super_globals();
}

function config_update($sql_update, $value)
{
	$sql = 'UPDATE ' . CONFIG_TABLE . '
				SET ' . DB->sql_build_array('UPDATE', $sql_update) . '
					WHERE ' . DB->sql_in_set('config_name', $value);
	DB->sql_query($sql);
}

Und speichere diesen in dein Forenhauptverzeichnis ab. Dort, wo auch deine config.php liegt.

Der Name der Datei ist egal.

Dies ist allerdings nur für den Notfall gedacht.

Liebe Admins oder Moderatoren. Sollte ich dies in den falschen Bereich gepostet haben, bitte ich dies zu verschieben.
Benutzeravatar
schnagga
Mitglied
Beiträge: 901
Registriert: 10.03.2006 18:26
Wohnort: Verden

Re: [3.3] Notfall-Formular für Servereinstellungen

Beitrag von schnagga »

Jau, hört sich äußerst gut an. Vielen Dank.
Passt aber wohl besser in: "Coding & Technik"?
Benutzeravatar
chris1278
Mitglied
Beiträge: 3903
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Notfall-Formular für Servereinstellungen

Beitrag von chris1278 »

Wie gesagt für mich gehört das eher in den Support für phpbb. Weils ja eine Lösung für ein allgemeines Problem ist. Aber können die Moderatoren ja verschieben, falls die andere Meinung sind!
vfrblue
Ehemaliges Teammitglied
Beiträge: 2010
Registriert: 22.11.2016 18:46

Re: [3.3] Notfall-Formular für Servereinstellungen

Beitrag von vfrblue »

Benutzeravatar
chris1278
Mitglied
Beiträge: 3903
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Notfall-Formular für Servereinstellungen

Beitrag von chris1278 »

Ok wusste ich nicht. Nun ja das was ich geschrieben macht im Grunde dasselbe wie das was du verlinkt hast.
Antworten

Zurück zu „Support-Forum“