index.php in Seitenzugriffe / Startseite wird immer mitgeladen
Wenn ich mir im Adminbereich die Seitenzugriffe anschaue, dann steht bei mindestens der Hälfte der User (oder Gäste) einfach nur index.php.
Nun haben wir ein paar Tests durchgeführt und herausgefunden, dass das ganz sicher in den meisten Fällen nicht stimmt.
Weiss jemand zufällig, wo das her kommt und was man tun muss, damit da die korrekte Seite nagezeigt wird?
Danke schonmal und Grüße
Gerald
Nun haben wir ein paar Tests durchgeführt und herausgefunden, dass das ganz sicher in den meisten Fällen nicht stimmt.
Weiss jemand zufällig, wo das her kommt und was man tun muss, damit da die korrekte Seite nagezeigt wird?
Danke schonmal und Grüße
Gerald
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Zwiebelring« (16. Oktober 2008, 12:02)
LOL ist ja witzig - nach ein paar Klicks löste schon der Clientblock aus ... stellt denn mal milder ein!
Was ich sehen kann - ob irgendwo in der Navigation auf die index.php verlinkt wird.
Das mit der index.php kann schon vorkommen - gerade bei Bots oder Usern die nur die Domain aufrufen und dann ohne einen klick wieder gehen.
Hast du an der include.php irgendetwas verändert?
Was ich sehen kann - ob irgendwo in der Navigation auf die index.php verlinkt wird.
Das mit der index.php kann schon vorkommen - gerade bei Bots oder Usern die nur die Domain aufrufen und dann ohne einen klick wieder gehen.
Hast du an der include.php irgendetwas verändert?
Das mit dem Clientblock muss(te) momentan leider sein. Wir haben nämlich ab und an wirklich Probleme. Dann sind für einen Moment alle Datenbankverbindungen zu, wofür ständiges neu klicken absolut kontraproduktiv ist. Und die Verbindungen sind wirklich zu - nicht mit schlafenden Prozessen! Aber - vielleich hast du es auch gesehen - die gespertten User werden alle 5 Minuten wieder automatisch reingelassen. Auf ein manuelles Freischalten muss da keiner warten. Mittlerweile hat sich so zumindest rumgesprochen, dass wildes Klicken schädlich ist.
Wie ich schon geschrieben habe, haben wir Tests gemacht und sind ganz sicher, dass meistens,wenn da index.php angezeigt wird, in Wirklichkeit ganz andere Seiten besucht waren. Da rede ich jetzt natürlich nur von den registrierten Mitgliedern.
Ich habe an der include.php schon rumgeschraubt (Clientblock hast du ja gesehen - Hackblock natürlich - und ein paar andere Kleinigkeiten), bin aber ziemlich sicher, dass das Anzeigen von idex.php von Anfang an so war...
Wie ich schon geschrieben habe, haben wir Tests gemacht und sind ganz sicher, dass meistens,wenn da index.php angezeigt wird, in Wirklichkeit ganz andere Seiten besucht waren. Da rede ich jetzt natürlich nur von den registrierten Mitgliedern.
Ich habe an der include.php schon rumgeschraubt (Clientblock hast du ja gesehen - Hackblock natürlich - und ein paar andere Kleinigkeiten), bin aber ziemlich sicher, dass das Anzeigen von idex.php von Anfang an so war...
Ich komme auf dieses Problem nun nochmal zurück.
Mittlerweile bin ich überzeugt, dass die index.php tatsächlich die jeweils zuletzt besuchte Seite ist, und zwar ausgenommen der Adminzugriffe immer.
Um einem anderen Problem nachzugehen, hatte ich am Ende der include.php einen Kodeschnipsel reingehängt, der für einen Testuser u.a. protokolliert, welche Seiten wann besucht werden (dabei handelte es sich wie gesagt nicht um Kontrolle, sondern um eine Problemsuche).
Wie schon geschrieben kam dabei heraus, dass die index.php immer hinterher geladen wird. Angezeigt wird sie aber nicht. Hat jemand vielleicht eine Idee, wie ich der Sache zu Leibe rücken kann? Die original 1.6.1 include.php hatte ich zu Testzwecken schonmal reingehängt. Sämtliche Javascript Erweiterungen sind aus site.htm und site_fuss.htm herausgenommen. Ich nehme an, dass es sich um eine Nebenwirkung eines unsauber programmierten Hacks oder Patches handelt (sammelpatch ist übrigens verbaut).
Welches Konstrukt kann das denn bewirken?: Wie gesagt - die angewählte Seite bewirkt, dass auch die index.php geladen wird. Diese läuft bis zum Ende (dort wird protokolliert), aber als PHP/HTML Datei wird sie zumindest nicht angezeigt.Kann das denn dann von einem "header(location" Konstrukt kommen oder muss es etwas anderes sein?
Viele Dank für eure Antworten
Grüeß
Gerald
Mittlerweile bin ich überzeugt, dass die index.php tatsächlich die jeweils zuletzt besuchte Seite ist, und zwar ausgenommen der Adminzugriffe immer.
Um einem anderen Problem nachzugehen, hatte ich am Ende der include.php einen Kodeschnipsel reingehängt, der für einen Testuser u.a. protokolliert, welche Seiten wann besucht werden (dabei handelte es sich wie gesagt nicht um Kontrolle, sondern um eine Problemsuche).
Wie schon geschrieben kam dabei heraus, dass die index.php immer hinterher geladen wird. Angezeigt wird sie aber nicht. Hat jemand vielleicht eine Idee, wie ich der Sache zu Leibe rücken kann? Die original 1.6.1 include.php hatte ich zu Testzwecken schonmal reingehängt. Sämtliche Javascript Erweiterungen sind aus site.htm und site_fuss.htm herausgenommen. Ich nehme an, dass es sich um eine Nebenwirkung eines unsauber programmierten Hacks oder Patches handelt (sammelpatch ist übrigens verbaut).
Welches Konstrukt kann das denn bewirken?: Wie gesagt - die angewählte Seite bewirkt, dass auch die index.php geladen wird. Diese läuft bis zum Ende (dort wird protokolliert), aber als PHP/HTML Datei wird sie zumindest nicht angezeigt.Kann das denn dann von einem "header(location" Konstrukt kommen oder muss es etwas anderes sein?
Viele Dank für eure Antworten
Grüeß
Gerald
So - der Fehler ist gefunden und erstmal beseitigt. Ich versuch's mal zu erklären:
Verantworlich für das Problem waren bei mir letztlich die beiden hervorgehobenen Teile im Styleteil jeder Seite des Forums.
...
td.heads,th.heads {background-color:#FFCC99;background-image: url(images/style/colorless/);}
...
td.navheadtop,th.navheadtop,td.navheadleft,th.navheadleft,td.navheadright,th.navheadright,td.navheadbottom,th.navheadbottom {background-color:#FFCC99;color:#000000;font-family:Arial;font-size:12px;background-image: url(images/style/colorless/);}
...
Diese werden durch die style.php geschrieben, wobei die Daten dafür im jeweiligen Style über den Adminbereich eingegeben werden können.
Die betreffenden Felder waren bei mir einfach freigelassen, was in den Kode oben übersetzt wurde.
Nun bewirkt ein Zugriff dieser Art auf ein Verzeichnis aber, dass die index.php gelesen wird (vermutlich zunächst die index.php im Verzeichnis, in dem sich hier "colorless" befindet - diese leitet dann aber kaskadenweise auf die index.php im phpkit Hauptverzeichnis um.
Um das anzustossen genügt übrigens auch schon ein winziges HTML Programm
Hier wird ebenso die index.php im phpkit Hauptverzeichnis inkl. aller Datenbankzugriffe geladen (aber nicht angezeigt).
Möglicherweise gibt es geschicktere Möglichkeiten, das zu beheben - ich habe aber erstmal verhindert, dass der betreffende Kode in den
Stylebereich geschrieben wird (style.php):
Mit dieser Änderung muss man zunächst mit Einschränkungen im Style leben (bei uns betrifft das aber nur Teile, die sowieso nicht benutzt wurden).
Damit ist nicht nur das ursprüngliche Problem behoben (in den Seitenzugriffen wird immer nur index.php als zuletzt besuchte Seite angezeigt), man spart sich ausserdem ca. die Hälfte aller Datenbankzugriffe (da ja nun die Haupseite nicht jedesmal mit verarbeitet wird).
Wenn jemand einen besseren Vorschlag zur Behebung des Problems hat - besser als die Verkrüppelung der style.php - dann immer nur her damit!
Grüße
Gerald
Verantworlich für das Problem waren bei mir letztlich die beiden hervorgehobenen Teile im Styleteil jeder Seite des Forums.
...
td.heads,th.heads {background-color:#FFCC99;background-image: url(images/style/colorless/);}
...
td.navheadtop,th.navheadtop,td.navheadleft,th.navheadleft,td.navheadright,th.navheadright,td.navheadbottom,th.navheadbottom {background-color:#FFCC99;color:#000000;font-family:Arial;font-size:12px;background-image: url(images/style/colorless/);}
...
Diese werden durch die style.php geschrieben, wobei die Daten dafür im jeweiligen Style über den Adminbereich eingegeben werden können.
Die betreffenden Felder waren bei mir einfach freigelassen, was in den Kode oben übersetzt wurde.
Nun bewirkt ein Zugriff dieser Art auf ein Verzeichnis aber, dass die index.php gelesen wird (vermutlich zunächst die index.php im Verzeichnis, in dem sich hier "colorless" befindet - diese leitet dann aber kaskadenweise auf die index.php im phpkit Hauptverzeichnis um.
|
|
PHP-Quelltext |
1 |
<?php header ("location: ../index.php"); exit(); ?>
|
Um das anzustossen genügt übrigens auch schon ein winziges HTML Programm
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 |
<html>
<head>
<img src="images/style/colorless/">
</head>
<body>
</body>
</html>
|
Hier wird ebenso die index.php im phpkit Hauptverzeichnis inkl. aller Datenbankzugriffe geladen (aber nicht angezeigt).
Möglicherweise gibt es geschicktere Möglichkeiten, das zu beheben - ich habe aber erstmal verhindert, dass der betreffende Kode in den
Stylebereich geschrieben wird (style.php):
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php
$site_design='';
if ($style['style_css'] != '') $site_design.='<link rel="stylesheet" href="'.$style['style_css'].'" type="text/css">';
$navhead_backgroundimage=$style['style_images'].'/'.$style['navheadbgimage'];
/* removed because with no given background image index.php has beeen loaded with every query
if (filecheck($navhead_backgroundimage)) $navhead_backgroundimage='background-image: url('.$navhead_backgroundimage.');';
else unset($navhead_backgroundimage);
*/
unset($navhead_backgroundimage);
$heads_backgroundimage=$style['style_images'].'/'.$style['tdheadsbgimage'];
/* removed because with no given background image index.php has beeen loaded with every query
if (filecheck($heads_backgroundimage)) $heads_backgroundimage='background-image: url('.$heads_backgroundimage.');';
else unset($heads_backgroundimage);
*/
unset($heads_backgroundimage);
if ($style['inputbgcolor']!='') $inputbgcolor='background: #'.$style['inputbgcolor'].';';
if ($style['style_addcss']!='') $style['style_addcss']=str_replace('{IMAGEDIR}',$style['style_images'],$style['style_addcss']);
eval ("\$site_design.= \"".getTemplate("site_style")."\";");
?>
|
Mit dieser Änderung muss man zunächst mit Einschränkungen im Style leben (bei uns betrifft das aber nur Teile, die sowieso nicht benutzt wurden).
Damit ist nicht nur das ursprüngliche Problem behoben (in den Seitenzugriffen wird immer nur index.php als zuletzt besuchte Seite angezeigt), man spart sich ausserdem ca. die Hälfte aller Datenbankzugriffe (da ja nun die Haupseite nicht jedesmal mit verarbeitet wird).
Wenn jemand einen besseren Vorschlag zur Behebung des Problems hat - besser als die Verkrüppelung der style.php - dann immer nur her damit!
Grüße
Gerald
Eines wollte ich noch nachtragen:
Mit dem Beheben dieser Sache sind sämtliche Performanceprobleme unseres Forums sofort verschwunden gewesen.
Viele User hatten über teilweise lange Ladezeiten, unmotivierte Abflüge (automatisches Ausloggen) und vielfältige "mysql server has gone away" Meldungen geklagt, und zwar sogar zu Zeiten, zu denen im Forum quasi nichts los war oder andere gar keine Probleme hatten. Betroffen waren immer wieder dieselben User, während andere niemals Probleme hatten - ein System konnte ich allerdings nicht feststellen.
Wie oben schon beschrieben ist exakt seit der beschriebenen Änderung kein einziger Problemfall mehr aufgetreten. Auch die User, die keine Probleme hatten, melden nun deutlich kürzere Ladezeiten.
Anscheinend war das parallele Laden der Startseite (oder die doppelte Datenbankbelastung) für die Probleme verantwortlich
Grüße
Gerald
Mit dem Beheben dieser Sache sind sämtliche Performanceprobleme unseres Forums sofort verschwunden gewesen.
Viele User hatten über teilweise lange Ladezeiten, unmotivierte Abflüge (automatisches Ausloggen) und vielfältige "mysql server has gone away" Meldungen geklagt, und zwar sogar zu Zeiten, zu denen im Forum quasi nichts los war oder andere gar keine Probleme hatten. Betroffen waren immer wieder dieselben User, während andere niemals Probleme hatten - ein System konnte ich allerdings nicht feststellen.
Wie oben schon beschrieben ist exakt seit der beschriebenen Änderung kein einziger Problemfall mehr aufgetreten. Auch die User, die keine Probleme hatten, melden nun deutlich kürzere Ladezeiten.
Anscheinend war das parallele Laden der Startseite (oder die doppelte Datenbankbelastung) für die Probleme verantwortlich
Grüße
Gerald
Danke an Zwiebelring fürs testen dieses Artikels:
style.php - Performance Schwierigkeiten
Jener Artikel funktioniert tadelos und kann ohne Probleme angewendet werden
style.php - Performance Schwierigkeiten
Jener Artikel funktioniert tadelos und kann ohne Probleme angewendet werden
|
Achtung: Dirk Kántor ist unterwegs! Er verteilt gerne Verwarnungen ohne vorher darüber diskutiert zu haben. |
Ähnliche Themen
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
Probleme mit Weiterleitung
(9. März 2008, 01:13)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
Seitenzugriffe nicht normal
(22. Februar 2008, 02:41)
-
Web | Allgemein »-
Traffic + HTTP hits
(10. Januar 2008, 18:00)
-
Web | Programmierung »-
Die Index-Typen INDEX und PRIMARY
(30. Dezember 2007, 02:21)


