Fehler bei der Layoutbearbeitung
Fehler bei der Layoutbearbeitung
Hallo,
ich habe mir die CVS version von vor etwa 3 Wochen heruntergeladen. Funktioniert im Großen und Ganzen auch schon recht gut.
Ich habe ein Update der Datenbank gemacht, da ich auch schon mit der Version 4.4.4 gearbeitet habe.
Möchte ich nun ein Layout bearbeiten, bekomme ich immer folgenden Fehler.
Woran kann das liegen?
Fatal error: Cannot use string offset as an array in /home/www/contenido/html/ver45/contenido/classes/class.htmlvalidator.php on line 92
Danke Christof
ich habe mir die CVS version von vor etwa 3 Wochen heruntergeladen. Funktioniert im Großen und Ganzen auch schon recht gut.
Ich habe ein Update der Datenbank gemacht, da ich auch schon mit der Version 4.4.4 gearbeitet habe.
Möchte ich nun ein Layout bearbeiten, bekomme ich immer folgenden Fehler.
Woran kann das liegen?
Fatal error: Cannot use string offset as an array in /home/www/contenido/html/ver45/contenido/classes/class.htmlvalidator.php on line 92
Danke Christof
welche cvs version genau ? (bitte genauen link auf die snapshot version angeben)
welche php version ?
welche php version ?
*** make your own tools (wishlist :: thx)
Hat etwas länger gedauert....
Hallo,
ich habe leider erst jetzt Zeit gefunden dir zu antworten.
Ich habe heute die neuste Snapshot (18.4.05) version installiert und den Fehler immernoch drin.
Der Fehler tritt im überigen auch dann auf, wenn ich eine neues Layout anlegen möchte.
Meine PHP Version ist 5.0.4 , falls das was hilft.
ich habe leider erst jetzt Zeit gefunden dir zu antworten.
Ich habe heute die neuste Snapshot (18.4.05) version installiert und den Fehler immernoch drin.
Der Fehler tritt im überigen auch dann auf, wenn ich eine neues Layout anlegen möchte.
Meine PHP Version ist 5.0.4 , falls das was hilft.
also die version -> http://www.contenido.org/snapshots/cont ... 18.tar.bz2
bekommst du den fehler bei jedem layout ?
bekommst du den fehler bei jedem layout ?
*** make your own tools (wishlist :: thx)
Ja
Ja, leider bekomme ich bei allen Layouts diesen Fehler....
Beim Anlegen von dem Layout bekomme ich, wie gesagt, auch den Fehler, aber der Name des LAyouts wird gespeichert. Ob der HTML Code auch gespeichert wird, weiß ich allerdings nicht.
Anzeigen lassen kann ich ihn mir auf jeden Fall nicht. Bei keinem Layout..Leider....
Aber ansonsten funktioniert das schon super....Vor allem die neuen "Language" methoden......
Danke
Christof
Beim Anlegen von dem Layout bekomme ich, wie gesagt, auch den Fehler, aber der Name des LAyouts wird gespeichert. Ob der HTML Code auch gespeichert wird, weiß ich allerdings nicht.
Anzeigen lassen kann ich ihn mir auf jeden Fall nicht. Bei keinem Layout..Leider....
Aber ansonsten funktioniert das schon super....Vor allem die neuen "Language" methoden......
Danke
Christof
hab mir das gerade angesehen... (contenido-cvs-2005-04-22.tar)
in classes/class.htmlvalidator.php findet sich ca um zeile 92 folgendes:
ähm scheint ein typo zu sein... der array sollte vermutlich bei $this->nestingNodes erzeugt werden....
fehlermeldung taucht dann keine mehr auf...
ob das so beabsichtigt ist ??? hab mir die klasse sonst nicht weiters angesehen...
in classes/class.htmlvalidator.php findet sich ca um zeile 92 folgendes:
Code: Alles auswählen
if (!array_key_exists($htmlParser->iNodeName, $this->nestingNodes))
{
$htmlParser->iNodeName[$htmlParser->iNodeName][intval($this->nestingLevel[$htmlParser->iNodeName])] = array();
}
Code: Alles auswählen
if (!array_key_exists($htmlParser->iNodeName, $this->nestingNodes))
{
$this->nestingNodes[$htmlParser->iNodeName][intval($this->nestingLevel[$htmlParser->iNodeName])] = array();
}
ob das so beabsichtigt ist ??? hab mir die klasse sonst nicht weiters angesehen...
*** make your own tools (wishlist :: thx)
Danke
Danke emergence!
Das war's ! Jetzt funktionierts einwandfrei!
Danke für die Schnelle Hilfe!
Das war's ! Jetzt funktionierts einwandfrei!
Danke für die Schnelle Hilfe!
Tja, leider ist das nur die halbe Miete. Wird z.B. der folgende HTML-Code als Layout verwendet, tritt ein Fehler auf:
Der Fehler:
Wenn der Fehler auftritt, erscheint übrigens nicht die Layout-Seite mit den entsprechenden Feldern für Name, Beschreibung und Quelltext, sondern nur der HTML-Code bis zu der Stelle, an der der Parse-Error aufgetreten ist.
Ursache für den Fehler ist hier das Objekt $db, denn es ist nicht instanziiert. Der folgende Code funktioniert:
Gruß
HerrB
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$sql = "SELECT User.realname AS realname, Article.lastmodified AS lastmodified FROM " . $cfg["tab"]["art_lang"] . " Article, " . $cfg["tab"]["phplib_auth_user_md5"] . " User WHERE Article.idart='$idart' AND User.username = Article.modifiedby" ;
$db->query($sql);
?>
</body>
</html>
Zu beachten ist, dass die Angabe zu line xy sich nicht auf die Zeile in class.htmlvalidator.php bezieht, sondern sich tatsächlich auf den HTML-Code bezieht (hier wäre es übrigens 12).PHP Fatal error: Call to a member function on a non-object in /homepages/4/d69320680/htdocs/contenido/classes/class.htmlvalidator.php(56) : eval()'d code on line xy
Wenn der Fehler auftritt, erscheint übrigens nicht die Layout-Seite mit den entsprechenden Feldern für Name, Beschreibung und Quelltext, sondern nur der HTML-Code bis zu der Stelle, an der der Parse-Error aufgetreten ist.
Ursache für den Fehler ist hier das Objekt $db, denn es ist nicht instanziiert. Der folgende Code funktioniert:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$sql = "SELECT User.realname AS realname, Article.lastmodified AS lastmodified FROM " . $cfg["tab"]["art_lang"] . " Article, " . $cfg["tab"]["phplib_auth_user_md5"] . " User WHERE Article.idart='$idart' AND User.username = Article.modifiedby" ;
$db = new DB_Contenido;
$db->query($sql);
?>
</body>
</html>
HerrB
Zuletzt geändert von HerrB am Mi 27. Apr 2005, 21:13, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
@HerrB
timo hat da recht...
wer php code im layout verwendet soll selbst dafür sorge tragen das die $db variable richtig definiert ist...
ein $db = new DB_Contenido(); schadet nicht...
die fehlermeldung mit
PHP Fatal error: Call to a member function on a non-object in /homepages/4/d69320680/htdocs/contenido/classes/class.htmlvalidator.php(56) : eval()'d code on line xy
könnte man noch so umbauen wie in der modul check funktion...
intressant ist ja nur das
PHP Fatal error: Call to a member function on a non-object ...
eval()'d code on line xy
timo hat da recht...
wer php code im layout verwendet soll selbst dafür sorge tragen das die $db variable richtig definiert ist...
ein $db = new DB_Contenido(); schadet nicht...
die fehlermeldung mit
PHP Fatal error: Call to a member function on a non-object in /homepages/4/d69320680/htdocs/contenido/classes/class.htmlvalidator.php(56) : eval()'d code on line xy
könnte man noch so umbauen wie in der modul check funktion...
intressant ist ja nur das
PHP Fatal error: Call to a member function on a non-object ...
eval()'d code on line xy
*** make your own tools (wishlist :: thx)
Ja, ich hatte nur gerade keine Zeit, das zu testen, war ein gutes Argument.
Und warum war es nicht instanziiert? Weil die Module des Bespielmandanten $db auch nicht ... nun ja, wieder was dazugelernt.
Ja, mit korrekter Definition geht es (nur zur Info).
Ansonsten, ja, gute Idee, das wie bei den Modulen umzubauen, denn z.Z. bedeutet jedes fehlerhafte PHP in einem Layout, dass der Layout-Code nicht mehr bearbeitet werden kann (da - wie erwähnt - der Layout-Code ausgegeben wird, ohne die eigentlichen Felder für die Layout-Bearbeitung). Man kann es nur noch löschen.
Gruß
HerrB
Und warum war es nicht instanziiert? Weil die Module des Bespielmandanten $db auch nicht ... nun ja, wieder was dazugelernt.
Ja, mit korrekter Definition geht es (nur zur Info).
Ansonsten, ja, gute Idee, das wie bei den Modulen umzubauen, denn z.Z. bedeutet jedes fehlerhafte PHP in einem Layout, dass der Layout-Code nicht mehr bearbeitet werden kann (da - wie erwähnt - der Layout-Code ausgegeben wird, ohne die eigentlichen Felder für die Layout-Bearbeitung). Man kann es nur noch löschen.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Ich habe den Text oben geändert, nicht das jemand auf den gleichen Gedanken kommt...
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
Naja, die Beispielmodule sind echt...grottig
Ich glaube, der PHP Parser steigt generell bei "Call to a member function on a non-object" aus...das Problem hatte ich schonmal, daß auch Module nicht mehr editierbar waren, aber genau weiß ich es nicht mehr
Komischerweise läuft er bei einem Syntaxfehler weiter
Ich glaube, der PHP Parser steigt generell bei "Call to a member function on a non-object" aus...das Problem hatte ich schonmal, daß auch Module nicht mehr editierbar waren, aber genau weiß ich es nicht mehr
Komischerweise läuft er bei einem Syntaxfehler weiter
na wie auch immer
ne kleinigkeit ist mir bei der klasse sowieso noch nicht klar
es sollte ja gecheckt werden ob zb </head> oder </body> vorhanden ist... oder nicht ? geht irgendwie nicht..
zumindestens erhält man keinerlei meldung...
oder hab ich die klasse falsch interpretiert... ?
ne kleinigkeit ist mir bei der klasse sowieso noch nicht klar
es sollte ja gecheckt werden ob zb </head> oder </body> vorhanden ist... oder nicht ? geht irgendwie nicht..
zumindestens erhält man keinerlei meldung...
oder hab ich die klasse falsch interpretiert... ?
*** make your own tools (wishlist :: thx)
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
Die Klasse ist ein HTML-Validator. Sprich, sie überprüft die Syntax des übergebenen Strings. Sie überprüft aber keinen Doctype oder die Gesamtstruktur des Dokuments. Wenn sie das machen würde, wäre es nicht möglich, Teilstrings zu validieren.
Was man natürlich noch bei der Klasse verbessern könnte (und ich warscheinlich auch noch machen werde): Eine Funktion, die zurückliefert, ob ein bestimmter Tag vorhanden ist, damit man im Layout dann auch eine Fehlermeldung ausgeben kann.
Was man natürlich noch bei der Klasse verbessern könnte (und ich warscheinlich auch noch machen werde): Eine Funktion, die zurückliefert, ob ein bestimmter Tag vorhanden ist, damit man im Layout dann auch eine Fehlermeldung ausgeben kann.