bug ? variable $edit und apache 2 problemchen

Gesperrt
emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

bug ? variable $edit und apache 2 problemchen

Beitrag von emergence » Do 5. Feb 2004, 19:37

ähm ja, bin nicht sicher wie ich das einstufen soll deshalb auch bug ?

betrifft die datei contenido/includes/include.con_editcontent.php

hab gestern ein problem damit gehabt, herauszufinden warum eines meiner module zu spinnen begonnen hat, wenn ich es alleine (ohne ein con_type element wie zB CMS_HTML vor meinem modul zu haben) als einziges modul getestet habe...
die variable $edit ist dann einfach nicht gesetzt...
hab mich zwar momentan mit $a_c beholfen und die variable $edit händisch auf true gesetzt... aber wieso wird diese nicht gesetzt am anfang wenn die datei include.con_editcontent.php geladen wird ?
ist das ein bug oder ist das keiner... ?

das zweite, was mir gestern bei einem apache2 server aufgefallen ist, anscheinend hat der standard apache 2 server bei suse ein problem mit dem datumsformat (so ähnlich wie das problem mit diesem forum vor einiger zeit) bei header... das betrifft jetzt vermutlich nicht nur diese applikation, sondern so ziemlich jede, die phplib, mit dieser konstellation verwendet...
es ergab sich witziger weise bei einigen internet explorer versionen das problem dass, die seite überhaupt nicht mehr von server geladen wurde, sondern nur mehr aus dem explorer cache abgerufen wurde...
mein provider hat mir jetzt vorgeschlagen das datumsformat bei dem header zu ändern...

und zwar auf das muster:
header ('Last-Modified: '.gmdate("D, M j Y G:i:s T", $lastPageUpdate));

aber da denk ich mir, das kanns eigentlich auch nicht sein...

intressant war dieses problem auch beim mozilla 1.6
dort wurde die seite nur mehr via force reload neu vom server angefordert...

hier der header den der server sendet:

Code: Alles auswählen

HTTP/1.x 200 OK
Date: Thu, 05 Feb 2004 14:22:36 GMT
Server: Apache/2.0.48 (Linux/SuSE)
Accept-Ranges: bytes
X-Powered-By: PHP/4.3.1
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Thu, 05 Feb 2004 14:22:36 GMT
Cache-Control: private, no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
hat irgendwer ne idee warum das problem auftritt ? vielleicht ist es ja nur ein server konfigurations problem ?

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Fr 6. Feb 2004, 10:44

zu dem edit-problem: keine ahnung

zu apache2: wir haben ähnliche probleme mit dem forum hier gehabt, warum das auftritt weiß keiner, ich hab im endeffekt bei phpbb ne starre header-anweisung reingesetzt, die das dokument auf jeden fall expiren lässt, aber WIESO und WESHALB: keine ahnung.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 6. Feb 2004, 11:04

timo hat geschrieben:zu dem edit-problem: keine ahnung
da ich bis jetzt immer davon ausgegangen bin, das die variable $edit im backend bereich immer gesetzt ist, würde vorschlagen diesen teil am beginn der datei hinzustellen...
timo hat geschrieben:zu apache2: wir haben ähnliche probleme mit dem forum hier gehabt, warum das auftritt weiß keiner, ich hab im endeffekt bei phpbb ne starre header-anweisung reingesetzt, die das dokument auf jeden fall expiren lässt, aber WIESO und WESHALB: keine ahnung.
ich mach mich mal schlau, vielleicht find ich ja was bei www.apache.org

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Mo 15. Mär 2004, 18:00

im CVS_HEAD ist jetzt die etag-angabe mit drin, was das Problem mit dem apache2 beheben sollte...

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 16. Mär 2004, 10:54

ähm bin noch nicht ganz ausgeschlafen...
etag bedeutet ?

genau nochwas betreffend $edit

folgende änderung wäre ideal

in contenido/includes/include.con_editcontent.php

Code: Alles auswählen

        while ( $db->next_record() ) {

            $tmp = preg_match_all("/(".$db->f("type")."\[+\d+\])/", $code, $match);
            $a_[strtolower($db->f("type"))] = $match[0];
            $success = array_walk($a_[strtolower($db->f("type"))], 'extractNumber');

            foreach ($a_[strtolower($db->f("type"))] as $val) {

                $edit = "true";
                eval ($db->f("code"));
                $code  = str_ireplace("".$db->f("type")."[$val]", $tmp, $code);

            }

        }
in

Code: Alles auswählen

        $edit = "true";

        while ( $db->next_record() ) {

            $tmp = preg_match_all("/(".$db->f("type")."\[+\d+\])/", $code, $match);
            $a_[strtolower($db->f("type"))] = $match[0];
            $success = array_walk($a_[strtolower($db->f("type"))], 'extractNumber');

            foreach ($a_[strtolower($db->f("type"))] as $val) {

                eval ($db->f("code"));
                $code  = str_replace("".$db->f("type")."[$val]", $tmp, $code);

            }

        }
damit steht die variable $edit im backend bei editor immer auf true...
ansonsten ist dies nur der fall wenn ein con_type element gefunden wird...

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Di 16. Mär 2004, 11:40

der etag ist ein schlüsselwert, der anzeigt, ob eine Seite verändert wurde. Im Mozilla kannst du dir das mit der LIVE HTTP HEADERS-Extension anzeigen. Soweit ich weiß, wird der etag im Apache2 automatisch anhand von Dateigröße und letztem Änderungsdatum generiert, und wenn sich die PHP-Dateien nicht ändern, ändert sich auch der etag nicht - und der Browser zeigt den alten Inhalt an.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 17. Mär 2004, 09:27

danke für die info...
ähm schaust du dir das noch mit $edit an ?

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Mi 17. Mär 2004, 10:20

ich geb das mal an einen kollegen weiter, mit den internals kenne ich mich nicht so gut aus. einen grund muß es ja gehabt haben :)

Gesperrt