PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum T_CONSTANT_ENCAPSED_STRING-Error in Script?


JeyDie
01.08.2007, 18:53:20
Hi allerseits.

Ich bekomme aus mir nicht erklärlichen Gründen folgenden Fehler
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\files\xampplite\htdocs\cmsm\lib\class.kernel.php on line 168 in einem Script.

Zeile 168 sieht wie folgt aus (in der Methode, in der sie steht - line 168 ist nur alles ab echo):

function render_page()
{
echo preg_replace_callback('!\{(.+?)\}!', array($this, 'box_content'), $this->template['content']);
}


So weit ich das sehe, verwende ich dort nirgends eine Konstante?
Auch sonnst hab ich im Script keine Konstanten, nur ganz oben wird eine in der index.php definierte Konstante abgefragt, um zu überprüfen, ob die Datei von der index.php oder von einem User aufgerufen wird...

Ich bin wirklich kein Anfänger mehr in PHP, habe jetzt schon mehrere Jahre Erfahung mit dieser Sprache. Aber ich sehe bei diesem Error einfach nicht die Fehlerquelle.
Keine falsch gesetzten Anführungszeichen und so weiter - oder bin ich einfach nur blind?

Die Codezeilen sind übrigens für ein eigenes CMS. Hatte vor einger Zeit schonmal ein kleines CMS für eigene Projekte programmiert, das nun modular umgeschrieben werden soll.

rambi
01.08.2007, 19:06:02
Der Fehler steckt vor Zeile 168 !!
Keine falsch gesetzten Anführungszeichen und so weiter - oder bin ich einfach nur blind?

Hmm... ja!

meikel
01.08.2007, 19:11:08
Ich kann in dem Schnipsel auf Anhieb keinen Fehler entdecken.
Schreibs mal so, damit die Zeilennummer auch nen Nutzen bringt:

function render_page()
{
echo
preg_replace_callback(
'!\{(.+?)\}!',
array($this, 'box_content'),
$this->template['content']);
}

Hinweis: häufig befindet sich der eigentliche Fehler ein paar Zeilen vorher. Vergessenes Semikolon, nicht abgeschlossene Zeichenkette, Klammerfehler usw. - also die janze Palette an Tippfehlern.

Serpentes.net
15.08.2007, 22:14:34
Hallo,

ich hatte bei mir auf www.serpentes.net im Fotoalbum auch solch eine Meldung.

Bei mir wurde es für Zeile 28 gemeldet.

Bei mir sieht die Zeile 28 folgendermassen aus.
$nom=str_replace(",","",$nom);

Ich habe jetzt einfach das filefunktions.php nochmal hochgeladen - jetzt kann ich zwar meine Bilder wieder sehen - allerdings erhalte ich im Header der Seite das komplette SQL-Skript abgebildet:

0.9 */ /* for phpNUKE Version 5.5 - 6.0 (http://phpnuke.org) */ /* ==================================================================== */ /* By WarpSpeed (warp_speed@gmx.net) @ 25/August/2oo2 */ /* http://www.warp-speed.de @ 4thDimension.de Networking */ /* ==================================================================== */ /* Based on: */ /* MyGallery v2.79 */ /* =============== */ /* Author: MarsIsHere */ /* Web: http://www.MarsIsHere.net */ /* ==================================================================== */ /* This program is free software. You can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License. */ /********************************************************************** **/ $max_caracteres = 20; function traite_nom_fichier($nom) { global $max_caracteres; $nom=stripslashes($nom); $nom=str_replace("'","",$nom); $nom=str_replace(""","",$nom); $nom=str_replace(""","",$nom); $nom=str_replace("&","",$nom); $nom=str_replace(",","",$nom); $nom=str_replace(";","",$nom); $nom=str_replace("/","",$nom); $nom=str_replace("\","",$nom); $nom=str_replace("`","",$nom); $nom=str_replace("<","",$nom); $nom=str_replace(">","",$nom); $nom=str_replace(" ","_",$nom); $nom=str_replace(":","",$nom); $nom=str_replace("*","",$nom); $nom=str_replace("|","",$nom); $nom=str_replace("?","",$nom); $nom=str_replace("é","e",$nom); $nom=str_replace("è","e",$nom); $nom=str_replace("ç","c",$nom); $nom=str_replace("@","",$nom); $nom=str_replace("â","a",$nom); $nom=str_replace("ê","e",$nom); $nom=str_replace("î","i",$nom); $nom=str_replace("ô","o",$nom); $nom=str_replace("û","u",$nom); $nom=str_replace("ù","u",$nom); $nom=str_replace("à","a",$nom); $nom=str_replace("!","",$nom); $nom=str_replace("§","",$nom); $nom=str_replace("+","",$nom); $nom=str_replace("^","",$nom); $nom=str_replace("(","",$nom); $nom=str_replace(")","",$nom); $nom=str_replace("#","",$nom); $nom=str_replace("=","",$nom); $nom=str_replace("$","",$nom); $nom=str_replace("%","",$nom); $nom=str_replace("ä","ae",$nom); $nom=str_replace("Ä","Ae",$nom); $nom=str_replace("ö","oe",$nom); $nom=str_replace("Ö","Oe",$nom); $nom=str_replace("ü","ue",$nom); $nom=str_replace("Ü","Ue",$nom); $nom=str_replace("ß","ss",$nom); if (strlen($nom)> $max_caracteres) { $ext = substr($nom, (strrpos($nom,'.') + 1)); $nom = substr ($nom,0,$max_caracteres-4); $nom = $nom.".".$ext; } return $nom; } function makeDir($rep, $nomdir) { global $prefix; $rep=stripslashes($rep); if($nomdir=="") { return _GALFILECREATED; } else { if(!is_dir("$rep/$nomdir")) { umask(000); $ret = @mkdir("$rep/$nomdir",0777); if ($ret) { return "OK"; } else { return _GALCREATECATERROR; } } else { $sql = "SELECT gallid FROM $prefix"._4nalbum_categories." WHERE galloc='$nomdir'"; $result = mysql_query($sql); $row = mysql_fetch_array($result); if($row[gallid]) { return "Category already exists."; } else { return "OK"; } } } } function UploadFile($rep, $userfile, $userfile_name, $userfile_size) { global $galleryvar; $rep=stripslashes($rep); $destination=$rep; if ($userfile_size==0 || ($userfile_size > $galleryvar['maxSize'] && $galleryvar['limitSize'] == 1)) { return _GALUPLOADERROR; } if ($userfile=="none") { return _GALUPLOADERROR2; } if (file_exists("$destination/$userfile_name")) { return _GALUPLOADERROR3; } if ($userfile!="none" && $userfile_size!=0) { $userfile_name=traite_nom_fichier($userfile_name); if (!@move_uploaded_file($userfile, "$destination/$userfile_name")) { return _GALUPLOADERROR4; } else { @chmod("$destination/$userfile_name",0664); return "OK"; } } }


Kann mir hier jemand helfen, da ich in der Beziehung ziemlich hilflos bin.

Vielen Dank und Gruss
Tina

rambi
15.08.2007, 22:39:34
Da simmt irgendwas mit deinen <?php ?> Tags oder Anführungszeichen wohl nicht...

OT:
Diese str_replace Kaskaden sind ja fürchterlich!!!
Ein Assoziatives Array und strtr() würden das viel übersichtlicher und flinker machen.....
Ich weiß Tina, dafür kannst du nix, das ist NUKE Zeugs..