Benutzer-/Gruppenrechte: ca. 190 werden übernommen (gelöst)

Gesperrt
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Benutzer-/Gruppenrechte: ca. 190 werden übernommen (gelöst)

Beitrag von mfweb »

Hallo zusammen,

ich habe ein etwas merkwürdiges Verhalten beobachtet, von dem ich nicht glauben kann, dass es ein Bug ist (sonst hätten sich sicherlich schon mehr Leute gemeldet ;-)):

Wenn ich für Gruppen oder Benutzer die Rechte vergeben will, dann werden von der Checkbox-Matrix (z.Bsp. Content oder Kategorien) nur ca. 190 (+/- 3) übernommen. Dabei werden von den jeweils markierten die ersten ca. 190 übernommen (von links nach rechts, oben nach unten). :?

Hier ist etwas ähnliches beschrieben: http://forum.contenido.org/viewtopic.php?t=12799. Allerdings ist das glaube ich mittlerweile gefixt, da entsprechende DB-Felder vom Typ mediumtext sind.

Beobachtet habe ich das zunächst in Version 4.8.7. Aber auch bei einer frischen Installation von Version 4.8.8 konnte ich im Beispielmandanten bei der Content-Matrix zum Beispiel nicht alle Checkboxen speichern. Getestet auch auf verschiedenen Servern, jeweils mit PHP5. Im Errorlog steht nichts (hat aber die richtigen Rechte).

Ich habe langsam keine Idee mehr. Weiß jemand Rat?

Grüße
mfweb
Zuletzt geändert von mfweb am Fr 12. Sep 2008, 19:21, insgesamt 1-mal geändert.
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Ich würde einfach mal in:
Tabelle: con48_rights
Fld: idright
von: int(10)
in: bigint(21)
ändern

ist nur einer Vermutung aber könnte daran liegen.

mfg OliverL
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

Ich habe es ausprobiert, funktioniert aber auch nicht.

Wäre ja auch etwas merkwürdig. In der Demoinstallation ist der höchste Wert von idright 1016. Und für diese Zahl (bzw. 1016 + x) sollten ja eigentlich 4 Byte ausreichen.

edith: Habs mittlerweile auch mit ner Contenido 4.6.8 auf einem dritten Server ausprobiert, aber euch dort funktioniert es nicht (sowohl mit PHP4 als auch mit PHP5).
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Beitrag von Oldperl »

Hallo mfweb,

kann deinen Fehler nicht reproduzieren. Habe eine Testinstallation 4.8.8 auf XAMPP hier laufen mit dem Demomandanten. Bin folgendermaßen vorgegangen:
  • Testbenutzer angelegt
  • Rechte für Demomandant und Sprache Deutsch vergeben
  • In Rechtemaske "Content" auf "Markiere Alle" und gespeichert
  • In Rechtemaske "Module" auf "Markiere Alle" und gespeichert
Schau ich nun, auch nach erneuter Anmeldung nach, sind alle Häckchen gesetzt.

Könntest du mir evtl. sagen ob dein Vorgehen gleich war, oder ob du den Fehler z.B. nach einer Migration, Neuinstallation oder was auch immer hast?

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

Danke, dass du versuchst hast, das Verhalten nachzuvollziehen.

Ursprünglich war es (nach Hackversuch einer älteren Version) eine "halbe" Neuinstallation: alte DB und Dateien von Version 4.8.8 und dann ein Upgrade.
Danach hatte ich das aber auch mit einer richtigen Neuinstallation und dem Beispielmandanten ausprobiert. Und jetzt habe ich noch einmal neu installiert und die von dir beschriebenen Schritte durchgeführt. Leider immer mit demselben Ergebnis. :-(

Das merkwürdige ist aber auch, dass ich das auf mehreren verschiedenen Servern rekonstruieren kann mit unterschiedlichen Contenido-Versionen (bis hin zur 4.6.8 ).

max_execution_time steht übrigens jeweils auf 30 und memory_limit auf 20 bzw. 128
Die Matrix wird auch nach dem Speichern ganz normal geladen (also keine weiße Seite oder so), nur halt mit ein paar Häkchen zu wenig, sobald die Matrix mehr als diese ca. 190 Felder hat.
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

Tja, was soll ich da sagen ... ich habs nun doch einmal lokal installiert (Contenido 4.8.8 mit aktueller XAMPP) und diese Installation übernimmt alle Rechte. :oops:

Damit müsste es doch eigentlich am Server liegen und kann nicht mehr primär an Contenido liegen, oder? Meine bisherigen Versuche waren zwar auf verschiedenen Servern, aber alle beim selben Webhoster. Kann es in PHP und/oder MySQL eine Einstellung geben, die mit Contenido (bzw. dessen Art wie es programmiert ist) nicht klar kommt? Wenn die Rechte abgespeichert werden, dann sind das ja beim Beispielmandanten schon knapp 550 Häkchen und damit 550 Insert-Befehle in die DB innerhalb kürzester Zeit. Kann es daran liegen?
Ich wüsste im Moment auch beim besten Willen noch nicht, womit ich mich ggf. beim Webhoster melden könnte.
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

Leider konnte ich das Problem bisher noch nicht lösen.
Kann mir vielleicht jemand die Vermutung aus dem vorherigen Post bestätigen/entkräften? Oder kennt noch jemand einen anderen Ansatzpunkt, wo man anfangen kann, zu suchen?

Danke schon einmal,
mfweb
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Tritt das in verschiedenen Browsern (evtl. auf verschiedenen Rechnern) genauso auf? Wenn ja, ist vielleicht ein extrem kleiner Wert für post_max_size auf dem Server eingestellt?
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

Das tritt sowohl mit Firefox als auch mit dem IE auf (auch auf verschiedenen Rechnern).
post_max_size stand auf 8M, aber auch mit 20M klappts leider nicht.

EDITH: Dies sind die restlichen PHP-Einstellungen, die ich ändern kann:

Code: Alles auswählen

safe_mode off
register_globals off
magic_quotes_gpc off
display_errors on
post_max_size 20M
upload_max_size 8M
memory_limit 20M
Ist da vlt. noch etwas verdächtiges dabei?
timo.trautmann_4fb
Beiträge: 472
Registriert: Di 15. Apr 2008, 15:57
Wohnort: Michelstadt
Kontaktdaten:

Beitrag von timo.trautmann_4fb »

Vielleicht hat der Server ein paar PHP Sicherheitsmechanismen aktiv die das Script abbrechen wenn es mehr als X Abfragen macht mehr als X rekursive Aufrufe macht. Diese Proble hatten wir schon einmal. Hier könntest du eventuelle Fehlermeldungen des Scripts im Apache LOG finden.

P.S. Es gibt auch externe Überwachungstools die mit PHP nicht direkt etwas zu tun haben und den PHP Prozess dann direkt beenden.
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

Danke für den Tip! Ich hatte mich mit meinem Webhoster in Verbindung gesetzt und es gab tatsächlich so eine Einstellung, die die Requests auf 200 beschränkte. Allerdings funktioniert es mit dem Wert 500 immer noch nicht.

Ich wollte jetzt einfach mal alle DB-Requests zählen, die beim Aufruf eines Seite durchgeführt werden. Dafür sollte es doch ausreichen, am Anfang der front_content.php bzw. am Anfang der /contenido/main.php

Code: Alles auswählen

$counter = 0
einzufügen , diese Variable in der Methode query() aus der Datei /conlib/db_mysql.inc zu inkrementieren und dann am Ende der beiden Dateien die Variable auszugeben, oder? Oder bleiben mir da noch DB-Requests verborgen?
Mit dieser Methode werden beim Speichern aller Rechte nämlich "nur" 321 Requests gezählt, was ja landläufig < 500 ist.
timo.trautmann_4fb
Beiträge: 472
Registriert: Di 15. Apr 2008, 15:57
Wohnort: Michelstadt
Kontaktdaten:

Beitrag von timo.trautmann_4fb »

Ja es gibt aber noch weitere Einschränkungen, beispielsweise wie viele DB Verbindungen ein Script gleichzeitig nutzen kann (Contenido erstellt sehr viele Verbindungen gleichzeitig) oder auch wie oft sich eine Funktion rekursiv aufrufen darf (auch das macht Contenido sehr oft)
Du solltest weitere Einschränkungen des Hosters prüfen bestimmt liegt es an einer dieser Einstellungen. Normalerweise sollte aber das Apache Log Aufschluss darüber geben warum ein Script (extern) abgebrochen wurde. Diesen Fall vermute ich hier. Alternativ eine saubere Neuinstallation auf dem Server machen und diese dann dort einfach mal Testen. Wenn diese geht ist etwas mit dem Update schief gelaufen.
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

Eine saubere Neuinstallation habe ich ja schon häufiger gemacht. Das Problem tritt ja sogar mit dem unangetasteten Demomandanten auf.

Auf die Apache Log habe ich leider keinen Zugriff (bzw. nur auf eine access.log), sodass ich auf die Informationen des Webhosters angewiesen bin. Aber ich werde mich noch einmal mit ihm in Verbindung setzen.
Danke für die weiteren Anregungen. Ich wusste nicht, dass man die Einstellungen so feinstufig machen kann.
timo.trautmann_4fb
Beiträge: 472
Registriert: Di 15. Apr 2008, 15:57
Wohnort: Michelstadt
Kontaktdaten:

Beitrag von timo.trautmann_4fb »

In Php kann man das auch nicht machen, aber mit externen Tools schon. Gerade wenn auf einem Server viele Kunden sind werden diese Tools eingesetzt um eine zu hohe Last oder Hackingversuchen vorzubeugen. Contenido ist ein recht anspruchsvolles System, was sie Performance angeht und daher unter Umständen bei solchen Einschränkungen nicht lauffähig.
mfweb
Beiträge: 270
Registriert: Mo 12. Sep 2005, 18:31
Kontaktdaten:

Beitrag von mfweb »

So, in Zusammenarbeit mit dem Webhoster haben wir jetzt Contenido ans laufen gebracht.

Für die Nachwelt: Es lag nicht an Contenido, der Datenbank, oder Restriktionen bei den DB-Requests ... sondern ganz einfach daran, dass die Anzahl der POST-Variablen von Formularen beschränkt war. :roll:

Danke @timo und die anderen für die Anregungen und Geduld, obwohl es ja primär kein Contenido-Problem war. ;-)
Gesperrt