Seite 3 von 4
Verfasst: Mi 6. Jul 2005, 08:46
von AnPa
Hallo.
Habe mal ein Dump erstellt,
kannst du dir hier Runterladen
http://www.anpa-networks.de/contenido_dump.sql
Habe nämlich das selbe Problem

Im Dump befindet sich con und con1... Haben beide den selben Fehler!
Habe schon auf 64 MB hochgesetzt, also am speicher liegts nicht
Ps: lade in ca. 5 min hoch!
Verfasst: Mi 6. Jul 2005, 09:08
von emergence
erstmal danke für den dump
fehler ist damit reproduzierbar...
zum testen verwende ich momentan ne 4.4.5
Verfasst: Mi 6. Jul 2005, 09:16
von AnPa
Ich benutze auch 4.4.5.
Habe anfangs das System mit den Beispielen installiert, sobald ich eine eigene Kategorie anlegen wollte, waren plötzlich alle weg und ich konnte auch keine eigene mehr anlegen.
Habe mich dann entschlossen, alles runterzuwerfen und nur mit modulen zu installieren, was dann den jetzigen fehler ausmachte
PS: Hatte ne zeit lang ein Mysql Problem mit lock tables, da das nicht freigegeben war! Habe das nun manuel freigegeben in mysql. aber daran lags wohl auch nicht??
Verfasst: Mi 6. Jul 2005, 09:22
von emergence
ist ja intressant
in der con_cat gibts folgenden eintrag
idcat, idclient, parentid, preid, postid, status, author, created, lastmodified
0,1,0,0,0,0,,01.01.0001,01.01.0001
zusätzlich in der con_cat_lang
idcatlang, idcat, idlang, idtplcfg, name, visible, public, status, author, created, lastmodified
0,0,1,0,Hauptmenü,0,1,0,,01.01.0001,01.01.0001
hab mal das getestet ->
http://contenido.org/forum/viewtopic.php?p=39083#39083
endlosschleife tritt damit nicht mehr auf...
jedoch eine verdoppelung der neu angelegten kategorie
ein weiteres anlegen weiterer unterkategorien ist dann ebenso nicht mehr möglich...
lösche ich beide zeilen in den beiden tabellen
funktioniert alles wie es soll...
Verfasst: Mi 6. Jul 2005, 09:23
von AnPa
Also sollte ich die mal löschen?

Mach ich jetzt mal einfach...
Verfasst: Mi 6. Jul 2005, 09:25
von AnPa
Geht immer noch nicht.. Sobald ich auf "Neuen Baum Anlegen" klicke, kommt Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 15603 bytes) in /srv/www/htdocs/web1/html/contenido/contenido/includes/functions.str.php on line 207
EDIT
Habe den falschen gelöscht.. hab schon so viele drinne

Aber habe jetzt den Richtigen gelöscht, und sobald ich einen Namen eingebe zum anlegen kommt danach wieder fatal error, siehe oben.
und der Eintrag in der DB ist wieder der selbe !
Verfasst: Mi 6. Jul 2005, 09:35
von emergence
hmm... zum testen (mach vorher noch ein backup)
leere beide tabellen mal komplett (con_cat & con_cat_lang)#
abmelden, anmelden -> nochmals versuchen eine kategorie anzulegen...
check noch ob du das recht lock table auf wirklich bei der db hast...
Verfasst: Mi 6. Jul 2005, 09:40
von AnPa
Kann das sein das es echt an den lock table lag?
Habe mir jetzt einen eigenen mysql user angelegt, der alles darf...
Weil confixx die rechte überschrieben hat, glaub ich. nun scheint es zugehen ?
Verfasst: Mi 6. Jul 2005, 09:48
von emergence
ich tippe einfach mal darauf das bei einem fehlenden lock table recht diese beiden fehlerhaften einträge erzeugt werden...
zusätzlich kommt das mit dem an und abmelden dazu...
der angezeigte baum wird in der session gespeichert...
ich muss da noch ein wenig überlegen...
tendiere aber dazu das beim neu auslesen der einzelnen kategorien
zuerst alle einträge mit idcat 0 gelöscht werden
zusätzlich zu berücksichtigen das idcat 0 werte nicht mit selektiert werden...
ich hab jetzt mal den zweiten schritt eingebaut und getestet zu einer verdoppelung kommt es dann nicht mehr...
beim erstmaligen anlegen einer neuen kategorie wird dennoch der erste fehlerhafte eintrag mit idcat 0 angezeigt...
Verfasst: Mi 6. Jul 2005, 09:57
von emergence
also mein fix würde so aussehen:
functions.str.php
die beiden funktionen strOrderedPostTreeList, strRemakeTreeTable werden durch folgendes ersetzt...
Code: Alles auswählen
function strOrderedPostTreeList ($idcat, $poststring) {
global $db;
global $client;
global $lang;
global $cfg;
$sql = "SELECT idcat FROM ".$cfg["tab"]["cat"]." WHERE parentid=0 AND preid='$idcat' AND idcat!=0";
$db->query($sql);
if ( $db->next_record() ) {
$tmp_idcat = $db->f("idcat");
$poststring = $poststring.",".$tmp_idcat;
$poststring = strOrderedPostTreeList($tmp_idcat, $poststring);
}
return $poststring;
}
function strRemakeTreeTable() {
global $db;
global $client;
global $lang;
global $cfg;
// Flag to rebuild the category table
global $remakeCatTable;
global $remakeStrTable;
$remakeCatTable = true;
$remakeStrTable = true;
$poststring = "";
$sql = "DELETE FROM ".$cfg["tab"]["cat_tree"]; // empty 'cat_tree'-table
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["cat"]." WHERE idcat='0'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='0'";
$db->query($sql);
$sql = "SELECT idcat FROM ".$cfg["tab"]["cat"]." WHERE parentid='0' AND preid='0' AND idcat!='0'";
$db->query($sql);
while($db->next_record())
{
$idcats[] = $db->f("idcat");
}
if (is_array($idcats)) {
foreach ($idcats as $value) {
$poststring = $poststring.$value.strOrderedPostTreeList ($value, "").",";
}
}
$poststring=ereg_replace(",$","", $poststring);
$a_maincats = explode(",", $poststring);
if (is_array($a_maincats)){
foreach ($a_maincats as $tmp_idcat) {
strRemakeTreeTableFindNext($tmp_idcat,0);
}
}
}
hab das jetzt nochmals mit deinem orginal dump getestet
die beiden fehlerhaften einträge werden gelöscht
und die neue kategorie wird korrekt ohne verdoppelung angelegt...
Verfasst: Mi 6. Jul 2005, 10:07
von emergence
@timo
die andere sache in der selben datei
-> warum es zu den fehlerhaften einträgen kommt
strNewTree und strNewCategory
die neue id wird mittels
angefordert...
sollte nun das recht lock table nicht vergeben sein wird der wert auf 0 gesetzt...
tja und somit kommt zu den fehlerhaften einträgen...
anders könnte ich es mir nicht erklären...
Verfasst: Mi 6. Jul 2005, 10:25
von AnPa
Also mir ist schon sehr geholfen

Vielen Dank sag ich da mal ...
Bei mir scheint jetzt alles zu gehen! Dann kann ich wohl den Wert von 64 MB Speicher wieder runterdrehen
Wünsche noch einen Schönen Tag!
PS: Gibt es irgendwo ein "lern how to" wie man mit Contenido umgeht? Also designs erstellen, template usw.???
Verfasst: Mi 6. Jul 2005, 10:26
von emergence
hmm hab jetzt noch ein wenig überlegt
die beiden funktionen führen ja keinerlei tätigkeit aus wenn kein kategoriename angegeben wurde...
ich hab mir jetzt einfach gedacht ich verknüpf das mit der überprüfung ob die neu angeforderte idcat nicht auch 0 ist
setzt man dann einfach vor
das durch folgendes ersetzt wird
Verfasst: Mi 6. Jul 2005, 11:02
von emergence
nur zur info
->
http://www.contenido.org/forum/viewtopi ... 1062#51062
ist der temporäre fix den man nur anwenden sollte wenn man eine endlos schleife erhält...
man sollte anschließend bei einer 4.4.5 dafür sorgen dass das recht lock table vergeben wird.
an sich halte ich es sonst für nicht notwendig diesen teil in den cvs_head zu übernehmen...
der eigentliche fix
->
http://www.contenido.org/forum/viewtopi ... 1068#51068
damit es nicht zu den fehlerhaften einträgen kommen kann, sollte auf jeden fall in den cvs head... (sollte genügen)
Verfasst: Do 11. Aug 2005, 19:35
von sengercarhifi.de
hi, ihr seit echt genial. ich hatte dieses verdammte problem auch und wollte die ganze software in meinen papierkorb treten.
Ich frage mich nur, warum die von Contenido das Problem nicht auch haben und selbst eine Lösung veröffentlichen. naja hauptsache es gibt wenigstens ein paar geniale leute auf der welt.
man sieht sich und weiter so
gruß Jens
(am Montag den 15. Aug. 2005 startet hoffentlich jetzt endlich meine homepage mit onlineshop [genug eigenwerbung])