From b2f01829418c02c494de491ac098c2dd66a94a39 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Tue, 26 Oct 2010 16:18:23 +0000 Subject: [PATCH] Documentation updated, fixes for bug #195/196 (previous commit comment was wrong): - Fixes for missing function SQL_ESCAPE() while in installation phase and setting language (e.g. call install.php?mx_lang=de), see ticket #196 - Added code to check for double-initialization of cache instance, see ticket #195 - Updated documentation, may be missleading, see ticket #198 - TODOs.txt updated --- DOCS/TODOs.txt | 5 ++--- DOCS/de/README.txt | 23 +++++++++++++++-------- DOCS/de/SECURITY.txt | 6 +++--- DOCS/en/README.txt | 2 +- DOCS/en/SECURITY.txt | 6 +++--- inc/config-global.php | 2 +- inc/functions.php | 6 ++++++ inc/install-functions.php | 4 ++-- inc/language-functions.php | 2 ++ inc/mysql-connect.php | 14 ++++++++++---- 10 files changed, 45 insertions(+), 25 deletions(-) diff --git a/DOCS/TODOs.txt b/DOCS/TODOs.txt index c19f51b8df..5d848ce57e 100644 --- a/DOCS/TODOs.txt +++ b/DOCS/TODOs.txt @@ -4,7 +4,6 @@ ./beg.php:171: // @TODO Opps, what is missing here??? ./birthday_confirm.php:93: // @TODO Try to rewrite the following unset() ./inc/autopurge/purge-inact.php:55: // @TODO Rewrite these if() blocks to a filter -./inc/cache/config-local.php:124:// @TODO Rewrite the following three constants, somehow... ./inc/classes/cachesystem.class.php:472: // @TODO Add support for more types which break in last else-block ./inc/config-functions.php:139: // @TODO Make this all better... :-/ ./inc/expression-functions.php:164:// @TODO FILTER_COMPILE_CONFIG does not handle call-back functions so we handle it here again @@ -46,14 +45,14 @@ ./inc/functions.php:1591: // @TODO Are these convertions still required? ./inc/functions.php:1609:// @TODO Rewrite this function to use readFromFile() and writeToFile() ./inc/functions.php:179:// @TODO Rewrite this to an extension 'smtp' -./inc/functions.php:2267: // @TODO This is still very static, rewrite it somehow +./inc/functions.php:2273: // @TODO This is still very static, rewrite it somehow ./inc/gen_sql_patches.php:94:// @TODO Rewrite this to a filter ./inc/install-functions.php:57: // @TODO DEACTIVATED: changeDataInFile(getCachePath() . 'config-local.php', 'OUTPUT-MODE', "setConfigEntry('OUTPUT_MODE', '", "');", postRequestParameter('omode'), 0); ./inc/language/de.php:1091:// @TODO Rewrite these two constants ./inc/language/de.php:1106:// @TODO Rewrite these three constants ./inc/language/de.php:286: // @TODO Following two are unused? ./inc/language/de.php:789:// @TODO Are these constants longer used? -./inc/language-functions.php:241: // @TODO These are all valid languages, again hard-coded +./inc/language-functions.php:243: // @TODO These are all valid languages, again hard-coded ./inc/language-functions.php:44:// @TODO Rewrite all language constants to this function. ./inc/language/newsletter_de.php:13: * @TODO This language file is completely out-dated, please do no * ./inc/language/rallye_de.php:13: * @TODO Naming convention not applied for language strings * diff --git a/DOCS/de/README.txt b/DOCS/de/README.txt index 5ded274e7f..ac26eb9313 100644 --- a/DOCS/de/README.txt +++ b/DOCS/de/README.txt @@ -79,7 +79,7 @@ Die Installation ist recht einfach gehalten: - Setzen Sie die Zugriffsrechte (CHMOD) wie folgt: + Verzeichnis inc auf 777 - + Datein inc/config.php auf 666 + + Datein inc/cache/config-local.php auf 666 - Das Script befindet sich jetzt im Installationsmodus! - Rufen Sie einfach das Script direkt auf: http://www.mein-server.de/mailtausch/ @@ -143,22 +143,29 @@ selber in folgender Reihenfolge (unbedingt einhalten!!!) einspielen: 1. install/tables.sql 2. install/menu-de.sql -Stellen Sie dann in der inc/config.php die Konstante mxchange_installed auf -'true'. +Kopieren Sie die Datei inc/config-local.php.dist nach inc/cache/config-local.php +(Vorsicht! Kein .dist mehr!). + +Stellen Sie dann in der inc/cache/config-local.php den Eintrag +MXCHANGE_INSTALLED um auf 'Y': (zirka Zeile 68) Vorher: -define('mxchange_installed', false); +setConfigEntry('MXCHANGE_INSTALLED', 'N'); Nachher: -define('mxchange_installed', true); +setConfigEntry('MXCHANGE_INSTALLED', 'Y'); Anschliessend stellen Sie die MySQL-Zugangsdaten, den Titel Ihres Mailtausches, Werbspruch (Slogan) und Ihre EMail-Adresse (zum Empfangen von Anmelde-EMails usw.) ein. -Die inc/config.php ist dazu von mir ausreichend gut durchkommentiert. Beachten -Sie aber, dass Sie Ihre Daten zwischen die doppelten Anfuehrungszeichen (") -setzen muessen. +Die inc/cache/config-local.php ist dazu von mir ausreichend gut +durchkommentiert. Beachten Sie aber, dass Sie Ihre Daten zwischen die doppelten +Anfuehrungszeichen (") setzen muessen. + +Rufen Sie dann in Ihrem Webbrowser die Datei +http://localhost/ihr-pfad-hier/admin.php auf. Es sollte zur Einrichtung des +ersten Administrationszuganges weitergeleitet werden. Ebenfalls viel Glueck dabei! :-) diff --git a/DOCS/de/SECURITY.txt b/DOCS/de/SECURITY.txt index b223cd0173..58dd21ae95 100644 --- a/DOCS/de/SECURITY.txt +++ b/DOCS/de/SECURITY.txt @@ -63,8 +63,8 @@ koennen Sie zwar den grafischen Code abschalten (Code-Laenge=0 unter "Einstellungen->Sonstige Einstellungen"), jedoch nicht den URL-Schutz. Ihre Mitglieder muessen weiterhin einmal einen Button anklicken. -Diese beiden Codes stehen in der inc/config.php und koennen nach den oben -genannten Regeln geaendert werden. +Diese beiden Codes stehen in der inc/cache/config-local.php und koennen nach +den oben genannten Regeln geaendert werden. Wird eine Mail bestaetigt so, erzeugt das PHP-Script mailid_top.php per rand() Funktion eine Zufallszahl zwichen 0 und 99999. Diese wird beim Laden der Seite @@ -109,7 +109,7 @@ entschieden. Die Idee, Include-Dateien im Header gegen das direkte Aufrufen abzusichern habe ich aber dennoch von PHP-Nuke uebernommen. Diese Sicherheitsbarriere ist fuer den normalen Besucher nicht sichtbar. Erst -wenn er versucht, Include-Dateien direkt aufzurufen (inc/config.php +wenn er versucht, Include-Dateien direkt aufzurufen (inc/cache/config-local.php beispielsweise), so wird eine rote Warnseite angezeigt und der Ablauf des Scriptes "stirbt". diff --git a/DOCS/en/README.txt b/DOCS/en/README.txt index cf8226ebb3..358e1107f3 100644 --- a/DOCS/en/README.txt +++ b/DOCS/en/README.txt @@ -35,7 +35,7 @@ The installation is kept as easy as possbile (we hope so... ;-)): Pre-installation: - Set CHMOD 777 on the 'inc' directory (no sub-directories) and CHMOD 644 on - inc/config.php + inc/cache/config-local.php - Reload the page in your browser and click on the button Page 1: diff --git a/DOCS/en/SECURITY.txt b/DOCS/en/SECURITY.txt index 0c5d27118c..8a2b64cec7 100644 --- a/DOCS/en/SECURITY.txt +++ b/DOCS/en/SECURITY.txt @@ -58,8 +58,8 @@ Dann gibt des den Date-Key. Dieser ist einfach das aktuelle Datum im amerikanischem Format. Auch hier koennen Sie das Format gerne auf deutsch umstellen. -Diese beiden Codes stehen in der inc/config.php und koennen nach den oben -genannten Regeln geaendert werden. +Diese beiden Codes stehen in der inc/cache/config-local.php und koennen nach +den oben genannten Regeln geaendert werden. Wird eine Mail bestaetigt so, erzeugt das PHP-Script mailid_top.php in Zeile 229 per rand() Funktion eine Zufallszahl zwichen 0 und 99999. Diese wird beim Laden @@ -107,7 +107,7 @@ entschieden. Die Idee, Include-Dateien so abzusichern habe ich aber dennoch von PHP-Nuke uebernommen. Diese Sicherheitsbarriere ist fuer den normalen Besucher nicht sichtbar. Erst -wenn er versucht, Include-Dateien direkt aufzurufen (inc/config.php +wenn er versucht, Include-Dateien direkt aufzurufen (inc/cache/config-local.php beispielsweise), so wird eine rote Warnseite angezeigt und der Ablauf des Scriptes "stirbt". diff --git a/inc/config-global.php b/inc/config-global.php index 8a2f4b38f0..08efc24050 100644 --- a/inc/config-global.php +++ b/inc/config-global.php @@ -65,7 +65,7 @@ foreach (array('config','wrapper','template','module','inc','stats') as $inc) { } // END - foreach // Own functions -include($PATH.'inc/functions.php'); +include($PATH . 'inc/functions.php'); // Auto-detection... (patched by "Stelzi" aka. profi-concept, thanks again!) $URL = 'http://' . detectServerName() . str_replace("\\", '/', dirname($_SERVER['PHP_SELF'])); diff --git a/inc/functions.php b/inc/functions.php index 0241262964..522082ba01 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -2228,6 +2228,12 @@ function addSqlToDebug ($result, $sqlString, $timing, $F, $L) { // Initializes the cache instance function initCacheInstance () { + // Check for double-initialization + if (isset($GLOBALS['cache_instance'])) { + // This should not happen and must be fixed + debug_report_bug(__FUNCTION__, __LINE__, 'Double initialization of cache system detected. cache_instance[]=' . gettype($GLOBALS['cache_instance'])); + } // END - if + // Load include for CacheSystem class loadIncludeOnce('inc/classes/cachesystem.class.php'); diff --git a/inc/install-functions.php b/inc/install-functions.php index 6d682005e1..d8e81ff5a7 100644 --- a/inc/install-functions.php +++ b/inc/install-functions.php @@ -99,12 +99,12 @@ function addToInstallContent ($out) { // Somewhat getter for installer content function getInstallerContent () { // Is it here? - if (isset($GLOBAS['install_content'])) { + if (isset($GLOBALS['install_content'])) { // Yes, then use it $content = $GLOBALS['install_content']; } else { // Nothing found, this needs fixing - $content = loadTemplate('admin_settings_saved', false, '{--INSTALLER_CONTENT_404--}'); + $content = loadTemplate('admin_settings_saved', true, '{--INSTALLER_CONTENT_404--}'); } // Return content diff --git a/inc/language-functions.php b/inc/language-functions.php index ce44f5849d..8ea861076e 100644 --- a/inc/language-functions.php +++ b/inc/language-functions.php @@ -70,6 +70,7 @@ function getMaskedMessage ($messageId, $data) { // Init messages function initMessages () { + /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLanguage()=' . getLanguage()); $GLOBALS['messages'][getLanguage()] = array(); } @@ -77,6 +78,7 @@ function initMessages () { function addMessages ($messages) { // Cache current language $currentLanguage = getCurrentLanguage(); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentLanguage=' . $currentLanguage); // Merge both $GLOBALS['messages'][$currentLanguage] = merge_array($GLOBALS['messages'][$currentLanguage], $messages); diff --git a/inc/mysql-connect.php b/inc/mysql-connect.php index dd7998d024..6124c29e4d 100644 --- a/inc/mysql-connect.php +++ b/inc/mysql-connect.php @@ -67,9 +67,6 @@ if (!isset($GLOBALS['header_sent'])) $GLOBALS['header_sent'] = '0'; // Init fatal messages initFatalMessages(); -// Init message system -initMessages(); - // Init repository data sub-system initRepositoryData(); @@ -84,6 +81,9 @@ if ((!isInstalling()) && (!isInstallationPhase())) { // Load database layer here loadIncludeOnce('inc/db/lib.php'); + // Init message system + initMessages(); + // CSS array initExtensionCssFiles(); @@ -145,8 +145,14 @@ if ((!isInstalling()) && (!isInstallationPhase())) { // CFG: DATABASE-TYPE setConfigEntry('_DB_TYPE', 'mysql3'); + // Load database layer here + loadIncludeOnce('inc/db/lib.php'); + + // Init message system + initMessages(); + // Include more - foreach (array('db/lib','databases','session','versions','install-functions','load_config','load_cache') as $inc) { + foreach (array('databases','session','versions','install-functions','load_config','load_cache') as $inc) { // Load the include loadIncludeOnce('inc/' . $inc . '.php'); } // END - foreach -- 2.39.5