$path verändert sich selbständig

B

ByeBye 8492

Moinsen,

ich habe folgendes Problem, am Anfang einer Datei lese ich $path aus der Datenbank aus, ich kann diese Variable überall einsetzen, nur wenn ich damit eine Grafik bei mir aufm Localhost anzeigen will also $path/images/smilie.gif, damit die betreffende Datei, später auf jeden Server gespielt werden kann setzt er einfach noch ein localhost ran, das verwunderliche ist

<tr>
<td class="row$row" align="center">
$path // hier zeiogt er es richtig an
<img src="$path/images/smilies/$result[datei]" border="0"></td> // hier nicht
</tr>

Das er es im gleichen Template ncoh richtig anzeigt ...
Auf meinem Webserver klappt es, aber ich will das es überallklappt.
Gibt es noch eine andere Variante den kompletten Verzeichnisspfad auszulesen,
habe es schon mit

dirname(__FILE__); probiert .. allerdings sind da \ anstatt / drinne und die will er nicht umwandeln :(
 
Da müsste man ein wenig mehr über die Verarbeitung wissen. Vielleicht könntest du den Code posten, der für das Parsen und Ausgeben des Templates sowie für die Verarbeitung der Variable $path (Auslesen aus der Datenbank usw.) verantwortlich ist.
 
PHP:
$sql = "select * from `". $prefix ."_config`";
$result = $db -> query($sql);
$row 	= $db -> fetch_array($result);

/****************************************************************
* Weitergeben der Variablen, an alle angeschlossenen Seiten *
* Dies sind die Standartvariablen, die immer wieder irgendwo	*
* gebraucht werden. Sie werden aus der Config Tabelle ausgelesen*
****************************************************************/

$site_name			= $row[site_name];
$site_logo			= $row[site_logo];
$path			       = $row[site_url];

Dort kann man das select * verschmerzen, da er wirklcih alle Variablen in der Config tabelle brauch ;).

der Template Parser ersetzt eigentlich nur die $path mit dem Wert, er Funktioniert ja auch Perfekt ;), nur halt wenn ich die Variable in einen Link reinsetze klappt das nicht mehr ganz auf dem Localhost, im Internet auf 2 verschiedenen Servern klappt es anstandslos :(.
 
Argh, warum muss ich das eigentlich immer wieder schreiben:
Schlüssel assoziativer Arrays gehören in Anführungszeichen!

So, kannst du vielleicht noch den Code posten, der für das Ersetzen von $path im Template verantwortlich ist? Bis hierher kann ich nämlich soweit keinen Fehler finden.
 
PHP:
function template($template)
{
	$file		=	file("templates/". $template .".tpl");

	$template 	= implode("",$file);
    $template 	= str_replace("\"","\\\"",$template);

    preg_match_all("/{(.*?)}/", $template, $new_parse); // weist der Variablen parse_vars_n die Werte zu 
	for($z=0; $z < count($new_parse[0]); $z++) 
		{
			$template  = str_replace($new_parse[0][$z], template($new_parse[1][$z]), $template);
		} 
	return $template;
}
function output($template)
{
		echo $template;
}
du wirst aber auch darin keinen Fehler finden ... weil das funktioniert ja eigentlich Tadellos ... nur nicht wenn man einzelne Links erstellen will .. bei anderen Sachen klappt es wieder tadellos ( also andere Links )
 
Zurück