Seite 1 von 1

[3.3] Notfall-Formular für Servereinstellungen

Verfasst: 10.06.2025 21:04
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.

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

Verfasst: 11.06.2025 17:30
von schnagga
Jau, hört sich äußerst gut an. Vielen Dank.
Passt aber wohl besser in: "Coding & Technik"?

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

Verfasst: 11.06.2025 17:47
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!

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

Verfasst: 12.06.2025 13:23
von vfrblue

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

Verfasst: 12.06.2025 16:28
von chris1278
Ok wusste ich nicht. Nun ja das was ich geschrieben macht im Grunde dasselbe wie das was du verlinkt hast.

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

Verfasst: 15.06.2025 21:57
von LukeWCS
schnagga hat geschrieben: 11.06.2025 17:30 Passt aber wohl besser in: "Coding & Technik"?
War auch mein erster Impuls, aber da das hier effektiv phpBB UND phpBB Support betrifft, passt das noch am ehesten hier.

Wir lassen das jetzt erstmal hier, auch aus Ermangelung eines passenderen Forums.