Blackbenji
Lieutenant
- Registriert
- Nov. 2009
- Beiträge
- 557
Hallo,
ich selber programmiere unter Darwin (OS X) und lasse mein "Produkt" auf einem Linux Server laufen.
Ein Kollege wollte unter Windows nun meinen Code mal testen.
Auf beiden System wird XAMPP in neuster Version benutzt.
Mir wurde fasst schlecht, alles was bislang funktioniert hat, funktionierte nicht mehr.
Die includes haben nicht mehr funktioniert. Als Lösung habe ich folgendes Eingebaut:
Und alle Pfade mussten neu fix definiert werden.
Soweit so gut, bei mir keine Fehler - alles funktioniert.
Auf dem Windows System gibt es zumindest kein Fehler mehr. Aber meine Templates werden nicht angezeigt.
Die Template Engine ist kein Hit, funktionierte aber für meine Zwecke bislang:
Soweit so gut, ich rufe nun meine index.html auf:
inhalt:
Und was ich im Browser erhalte ist:
1zu1 wird mir der Inhalt ausgegeben.
Auf meinem System und auch auf dem Linux-Server wird der Code richtig ausgeführt. Auf dem Windows System nicht.
Ich verstehe so langsam nicht mehr warum, weil auch kein Fehler ausgegeben wird ...
ich selber programmiere unter Darwin (OS X) und lasse mein "Produkt" auf einem Linux Server laufen.
Ein Kollege wollte unter Windows nun meinen Code mal testen.
Auf beiden System wird XAMPP in neuster Version benutzt.
Mir wurde fasst schlecht, alles was bislang funktioniert hat, funktionierte nicht mehr.
Die includes haben nicht mehr funktioniert. Als Lösung habe ich folgendes Eingebaut:
PHP:
switch(PHP_OS) {
case "Darwin": define("SEPARATOR", "/"); break;
case "Linux": define("SEPARATOR", "/"); break;
case "WIN32": define("SEPARATOR", "\\"); break;
case "WINNT": define("SEPARATOR", "\\"); break;
case "Windows": define("SEPARATOR", "\\"); break;
default: define("SEPARATOR", "/"); break;
}
Und alle Pfade mussten neu fix definiert werden.
Soweit so gut, bei mir keine Fehler - alles funktioniert.
Auf dem Windows System gibt es zumindest kein Fehler mehr. Aber meine Templates werden nicht angezeigt.
Die Template Engine ist kein Hit, funktionierte aber für meine Zwecke bislang:
PHP:
class Template
{
var $TEMPLATE_DIR = TEMPLATE_DIR;
var $TEMPLATE_VARS = array();
/** @var BBcode * */
protected $bbcode;
public function __construct($bbcode)
{
$this->bbcode = $bbcode;
}
public function assign($key, $val = null)
{
$this->TEMPLATE_VARS[$key] = $val;
}
public function display($tpl_file)
{
if (!is_file($this->TEMPLATE_DIR . $tpl_file)) {
exit('no such template file: ' . $tpl_file);
}
$TPL = & $this->TEMPLATE_VARS;
$TPL_DIR = $this->TEMPLATE_DIR;
include($this->TEMPLATE_DIR . $tpl_file);
$clear = & $this->TEMPLATE_VARS;
}
private function setTemplateDir($tpl_dir)
{
if (!is_dir($tpl_dir)) {
exit('invalid template path');
}
$this->TEMPLATE_DIR = $tpl_dir;
}
}
Soweit so gut, ich rufe nun meine index.html auf:
PHP:
$tpl->display(FRONTEND . 'index.html');
inhalt:
PHP:
<? include('html'. $SEPARATOR .'header.html'); ?>
<?
if(isset($TPL['filename'])) {
$file = $TPL['filename'];
include('html'.SEPARATOR.$file.'.html');
} else {
include('html'. SEPARATOR .'content.html');
}
?>
<? include('html'. SEPARATOR.'sidebar.html'); ?>
<? include('html'. SEPARATOR.'footer.html'); ?>
Und was ich im Browser erhalte ist:
PHP:
<? include('html'. SEPARATOR.'header.html'); ?>
<?
if(isset($TPL['filename'])) {
$file = $TPL['filename'];
include('html'.SEPARATOR.$file.'.html');
} else {
include('html'. SEPARATOR.'content.html');
}
?>
<? include('html'. SEPARATOR .'sidebar.html'); ?>
<? include('html'. SEPARATOR.'footer.html'); ?>
1zu1 wird mir der Inhalt ausgegeben.
Auf meinem System und auch auf dem Linux-Server wird der Code richtig ausgeführt. Auf dem Windows System nicht.
Ich verstehe so langsam nicht mehr warum, weil auch kein Fehler ausgegeben wird ...