<p>Die aufgeführten Werte werden in der Konfigurationsdatei <code>php.ini</code> vom Adminstrator des Webservers eingestellt. Unter Umständen führen einige Einstellungen zu Beschränkungen in der Funktionalität des Elm@r-Moduls. Wenn der Webadmin nicht bereit ist, die Einstellungen zu ändern, müssen Sie mit diesen Beschränkungen leider leben. Soweit das technisch möglich ist, versucht das Elm@r-Modul die Probleme auf Kosten des Komforts zu umgehen.</p> <dl> <?php if (ini_get('safe_mode')) { ?> <dt><span class="error"><code>safe_mode</code> ist aktiv.</span></dt> <dd>Das Elm@r-Modul kann u. a. die Ausführungszeit seiner PHP-Skripten nicht verlängern, sofern dies bei großen Produktdateien erforderlich sein sollte.</dd> <?php } ?> <?php $max_execution_time = (int) ini_get('max_execution_time'); if ($max_execution_time) { $productAnz = productAnz(); ?> <dt><span class="error"><code>max_execution_time</code> ist <?php echo $max_execution_time; ?> .</span></dt> <dd>Die maximale Laufzeit für PHP-Skripte beträgt also <?php echo $max_execution_time; ?> Sekunden. <?php if ($max_execution_time <= (1 + $productAnz / DB_STEP) * DB_SLEEP) { ?> Das könnte zur Erzeugung großer Produktdateien zu kurz sein. Falls Timeout-Probleme wie leere oder abgeschnittene Produktdateien auftreten, versuchen Sie die Werte für <code>DB_STEP</code> und <code>DB_SLEEP</code> in <code>elmar_config.inc.php</code> anzupassen.
} else { $file = $_REQUEST['file']; if (!file_exists(ELMAR_PATH . $file)) { $errmsg[] = 'Die Datei <em>' . realpath(ELMAR_PATH) . $PATH_SEPARATOR . $file . '</em> existiert nicht.'; define('THISPAGE', 'index.php'); } else { define('THISPAGE', $file); } } } else { // Kein oder falsches Passwort, dann zum Login. define('THISPAGE', 'login.php'); } // Produktdatei in mehreren Schritten mit entsprechenden Redirects erzeugen. $db_part = isset($_REQUEST['db_part']) && $_REQUEST['db_part'] > 0 ? (int) $_REQUEST['db_part'] : false; if ($db_part && $db_part * DB_STEP < productAnz()) { // Das Formular in prodfiles.php muss mit GET abgeschickt werden, // damit hier die Umleitung auf die naechste Seite mittels REQUEST_URI klappt. $uri = ereg_replace('db_part=[0-9]+', 'db_part=' . ($db_part + 1), $_SERVER['REQUEST_URI']); header('Location: ' . $uri); } if (!defined('DEFAULT_DELIMITER')) { $errmsg[] = 'Das Trennzeichen für Produktdateien (<code>DEFAULT_DELIMITER</code>) ist in der Konfigurationsdatei <code>elmar_config.inc.php</code> nicht gesetzt.'; } else { if (DEFAULT_DELIMITER == 't') { $errmsg[] = 'Das Trennzeichen für Produktdateien (<code>DEFAULT_DELIMITER</code>) in der Konfigurationsdatei <code>elmar_config.inc.php</code> ist ungültig. Wurde die Datei mit dem osCommerce-Dateimanager bearbeitet? Wenn ja, siehe <a href="readme.html#osfilemanager">Readme</a>. Vermutlich soll der Wert so gesetzt werden:<br><code>define(\'DEFAULT_DELIMITER\', "\\t");</code>'; } } if (isset($_GET['elmar_debug_level'])) { $elmar_debug_level = $_GET['elmar_debug_level']; setcookie('elmar_debug_level', $elmar_debug_level, time() + 60 * 60 * 24 * 365);
function Config() { if (file_exists(CONFIG)) { $this->read(); } else { // Default-Werte eintragen $this->items = array(); $this->set('ELMAR_MODULE_ONE_TIME_INSTALL', FALSE); $this->set('WRITE_PRODUCTFILE', productAnz() > 1000 && check_writeable(PRODUCTFILE)); $this->set('WRITE_REQUESTLOG', FALSE); $this->set('WRITE_ERRORLOG', FALSE); $this->set('WRITE_PRODUCTLOG', FALSE); $this->set('LOGFORMAT', 'TXT'); $this->set('MD5_CHECKSUM', ''); $this->set('REGISTERED', FALSE); $this->set('CAN_WRITE', TRUE); $this->set('SHOPINFO_XML_URL', ''); $this->set('SHOPINFO_XML_FILE', ''); $this->set('ELMAR_PASSWORD', ''); } }
exit; } $from_bytes = 0; $to_bytes = 0x7fffffff; if (isset($_SERVER['HTTP_RANGE'])) { if (preg_match("/bytes\\s*=\\s*(\\d+)\\s*-\\s*(\\d+)/i", $_SERVER['HTTP_RANGE'], $matches)) { // Wenn nur partieller Content angefragt wird, die Produktschleife ggf. vorzeitig abbrechen. // Um die richtige Anzahl Bytes und den Antwortcode kümmert sich der Webserver. $from_bytes = (int) $matches[1]; $to_bytes = (int) $matches[2]; } } if (!ini_get('safe_mode') && DB_SLEEP > 0) { // max_execution_time kann im Safemode nicht geaendert werden. // max_execution_time ggf. erhoehen, damit alle Produkte in die Produktdatei geschrieben werden. ini_set('max_execution_time', max(ini_get('max_execution_time'), (1 + productAnz() / DB_STEP) * DB_SLEEP)); } // Sonderzeichen ersetzen; Reihenfolge relevant! $quoted_csv_srch = array("\r\n", "\r", "\n", "\v", ""); $quoted_csv_repl = array(' ', ' ', ' ', ' ', ''); if (!empty($escape)) { $quoted_csv_srch[] = $escape; $quoted_csv_repl[] = $escape . $escape; } if (!empty($quote)) { $quoted_csv_srch[] = $quote; $quoted_csv_repl[] = !empty($escape) ? $escape . $quote : ''; } else { $quoted_csv_srch[] = $delimiter; $quoted_csv_repl[] = !empty($escape) ? $escape . $delimiter : ' '; }
<input type="hidden" name="file" value="<?php echo THISPAGE; ?> "> <input type="hidden" name="isForm" value="yes"> <table border="0" cellpadding="3" cellspacing="3" summary="Layout Formular"> <tr valign=top> <td align=left class="main"><input type="checkbox" name="productFile" value="yes" <?php if ($productFile) { echo 'checked'; } ?> ></td> <td><STRONG>Produktdatei speichern</STRONG> <?php if (productAnz() > 1000) { echo '(wird empfohlen)'; } ?> </td> </tr> <tr><td> </td><td> Bitte stellen Sie ein, ob beim Abrufen von Produktdaten über die URL <a href="<?php echo ELMAR_SHOP_ROOT_DIR . 'elmar_products.php'; ?> "><code><?php echo ELMAR_SHOP_ROOT_DIR . 'elmar_products.php'; ?> </code></a> automatisch die Produktdatei <code class="data"><?php echo DIR_FS_CATALOG . PRODUCTFILE; ?>