Seite 1 von 1

Evtl. Bug (Mysql (longtext,) functions.con.php, *_content)

Verfasst: Sa 12. Nov 2005, 19:30
von nspace
Hi,

ich bin mir leider nicht zu 100% sicher, aber es scheint ein BUG, zumindest unter gewissen Vorrausetzungen, zu sein.

Versionen:
--------------------------------------------
PHP 5.0.5
Apache/1.3.33 (Win32)
mysql 4.1.7
Contenido 4.4.5

Problem:
--------------------------------------------
Es erfolgt kein Eintrag bzw. nur ein Teil des eigentlichen
Contents in *_content.value. Es ist doch richtig, dass grob
gesagt in dieser Table (*_content) der eigentliche Inhalt
eines Artikels gespeichert wird, oder ? Ich arbeite erst seit ca.
einer Woche mit Contenido, deswegen stell ich die Frage, da es durchaus
sein kann das ich das Prinzip nicht ganz verstanden habe.

Meine (vermeintliche) Lösung:
---------------------------------------------
File: functions.con.php
Zeile: 532

Dort erfolgt der Insert in die Table, das feld value hat den typ
longtext, und hat meines erachtens ein wenig probleme mit sonderzeichen.
Seit ich die Variable $value mit der funktion mysql_real_escape_string()
"ausgestattet" habe, funktioniert es einwandfrei. Gleiches gilt für das
UPDATE-Statement in Zeile 524.

Seltsames:
---------------------------------------------
Der INSERT in die Table *_code.code (ebenfalls typ LONTEXT) funktioniert
auch ohne die von mir erwähnt funktion. Gut, kann auch daran liegen
das derren Inhalt anders für die DB aufbereit wird, wie gesagt
hab noch nicht so viel mit Contenido gerarbeitet und evtl. gerade mal
5% von der Funktionsweise des Systems verstanden. Also falls ich
jetzt viel Wind um nix mach, möge man mir das verzeihen :)

Beste Grüße,

Erik

Verfasst: So 13. Nov 2005, 00:25
von HerrB
Ähm, es würde IMHO noch helfen, wenn Du schreiben könntest, von welchem Problem Du eigentlich redest.

Welchen Effekt hast Du denn (ohne Deine Änderung) beobachtet? Fehlermeldung im errorlog?

Gruß
HerrB

Verfasst: So 13. Nov 2005, 01:04
von jost
HerrB hat geschrieben:Ähm, es würde IMHO noch helfen, wenn Du schreiben könntest, von welchem Problem Du eigentlich redest.
:P

Verfasst: So 13. Nov 2005, 19:29
von nspace
>>wenn Du schreiben könntest, von welchem Problem Du eigentlich rede

Hi,

evtl. hab ich mich in meiner Problembeschreibung nicht ganz klar ausgedrückt.

>>Es erfolgt kein Eintrag bzw. nur ein Teil des eigentlichen
>>Contents in *_content.value. Es ist doch richtig, dass grob
>>gesagt in dieser Table (*_content) der eigentliche Inhalt
>>eines Artikels gespeichert wird, oder ? Ich arbeite erst seit ca.
>>einer Woche mit Contenido, deswegen stell ich die Frage, da es durchaus
>>sein kann das ich das Prinzip nicht ganz verstanden habe.


Grundlegend ist es doch so, wenn ein Artikel angelegt wird
das dessen Inhalt sprich der content eigentlich in der Tabelle
*_content im Feld "value" mit dem typ longtext abgelegt werden
soll, oder sehe ich das falsch ? Angenommen ich bastle gerade
an einer art Suchfunktion, dann will ich nicht unbedingt den
ganzen sourcecode inkl php etc., der in der Tabelle *_code im feld
"code" das ebenfalls vom typ longtext ist durschuchen, sondern
nur den eigentlichen content. Tja und das Problem ist genau das,
was ich oben schon beschrieben hatte, dass zwar im feld "code"
der sourcecode gespeichert wird, aber der inhalt nicht bzw. nur
teilweise im feld "value" der tabelle *_content.

Ich hoffe ich habe mich jetzt besser ausgedrückt und alles andere
kann man denke ich meinem ersten Beitrag entnehmen.

mfg,

erik

Verfasst: So 13. Nov 2005, 19:35
von emergence
ähm wie ? das liest sich ziemlich kompliziert...

sämtliche inhalte werden in der con_content gespeichert...
die con_code fungiert nur als cache...

ein paar fragen die vielleicht licht ins dunkel bringen...

welche inhalte fehlen dir denn in der con_content ?
geht was verloren ?
oder werden irgendwelche sonderzeichen nicht korrekt escaped ?
stand was im errorlog.txt ?

welche contenido version genau ?
welche server umgebung ?
wie sehen die php settings für die quotes aus ?

Verfasst: So 13. Nov 2005, 20:48
von nspace
Hi,

>> ... con_code fungiert nur als cache...

genau der inhalt wird aber zu selben zeit erstellt wie der der table *_content oder ?

Ok zu deinen Fragen:
>>welche inhalte fehlen dir denn in der con_content ?

Alle :) Alle im Feld value, ab und zu steht gerade noch eine Zeile des Inahltes drin.

>>geht was verloren ?

erklärt sich von selbst, die Seitendarstellung funktioniert aber einwandfrei.

>>oder werden irgendwelche sonderzeichen nicht korrekt escaped

das ist auch meine vermtutung, konnte aber noch nicht definieren
ob alle oder nur bestimmte nicht.

>>stand was im errorlog.txt ?
nein, rein gar nichts

>>welche contenido version genau ?
wie gesagt, Release: 4.4.5 ... sorry konnte keine genauere definition
finden.

>>welche server umgebung ?
WIN XP Pro
Apache 1.3.33
PHP 5.0.5 (modul)
Mysql 4.1.15

>>wie sehen die php settings für die quotes aus ?
absolute Standartsettings

Wie beschrieben schaffte aber die funktion mysql_real_escape_string(),
angewandt in der file functions.con.php, Zeilen: 524 u. 532 anhilfe, es
funktioniert damit einwandfrei.

mfg,

erik

Verfasst: So 13. Nov 2005, 21:13
von nspace
Aber je mehr ich über das nachdenke, umso mehr glaube ich nicht an
einen direkten bug als vielmehr an einen systembedingten Fehler der
eher nur bei mir Auftritt, denn wenn es denn öfters diesen Fall geben
würde so wäre das doch schon aufgefallen da dies ja eigentlich eine
grundlegende Funktion ist, leider konnte ich einfach noch keinen finden.

Was mich eben stört ist es das es in *_code funktioniert aber in *_content
nicht, sobald da ein längere Text steht schneidet es immer den Grossteil
ab, headlines also kürzere texte etc. sind zu 99% immer korrekt
hinterlegt.

Sehr seltsam ...

Verfasst: So 13. Nov 2005, 21:27
von timo
nein, die con_code wird nicht zur selben Zeit wie die con_content-Einträge generiert...

aber irgendwie weiß hier keiner worauf du hinaus willst...ich halte es aber für unwarscheinlich daß es ein bug ist

du kannst die tabelle con_code sooft leeren wie du willst, die daten werden aus den einträgen der con_content, con_lay, con_mod und con_tpl (inkl verknüpfter tabellen) neu generiert...

ich vermute, daß du eher einige tabellen so interpretierst, daß sie für deine zwecke funktionieren, aber das nicht der fall ist...

also am besten mal ein beispiel bringen, damit man das hier nachvollziehen kann...