Malcolm Beck´s: Errorlog erweitern

Beitrag lesen

hi,

Danke erstmal für die vielen Tipps und die hilfe, da war und ist noch viel aufzuräumen.

Diese Variable wird aber in der Funktion verwendet, und es wird ohne weitere Checks einfach davon ausgegangen, dass sie ein Objekt mit Eigenschaft "error" ist.

Ja, stimmt. Ich hatte gar nicht weiter drüber nachgedacht und versucht, alles in diese Funktion zu bauen, habe ich jetzt geändert.

Auf der anderen Seite sieht man sehr schön, dass die Behandlung des DB-Zugriffs bei dir noch verbesserungswürdig ist, denn sonst würde ein Fall wie "Zuviele DB-Connections" keine PHP-Fehlermeldungskaskade erzeugen, sondern rechtzeitig abbrechen und Status 500 auswerfen.

Das verstehe ich allerdings selber nicht; da muss was auf dem Server bei 1und1 schief laufen, denn soviel ist auf meiner Seite nicht los. Ich werde Morgen mal den Support anrufen und nachhaken.
max_connections 250 -- show variables like 'max_connections';
mysql.allow_persistent = off // zeigt auch keine wirkung

Ich würde vorschlagen: Definition einer Konstanten mit dem Error-Log-Dateinamen, und zwar als fixer String. Dann ini_set() des error_log-Wertes. Entfernung des optionalen dritten Parameters aus der Logfunktion, und Nutzung der Konstanten als Dateiname im Aufruf von error_log().

Ich habe jetzt alle Parameter bis auf $_content entfernt, du hast recht, alles andere ist Sinnlos.
Ich muss mir noch mal Gedanken über die Struktur meiner index machen, ich habe mittlerweile den Überblick verloren.

Ja, ich erinnere mich - diese komische Filterfunktion, die einfach mal pauschal alles, was irgendwie "böse" aussieht, in der URL rausfischt, kommt mir extrem bekannt vor - wir hatten schon mal diskutiert, dass das absolut nicht gerechtfertigt und notwendig ist.

Habe ich geändert, so gesehen auch eine Überflüssige Prüfung, da ich eh nichts unescaped durch meine Selects jage.
Neue Index

Interessant übrigens auch deine Redirect-Funktion. Warum steht die ganz am Ende, nachdem für den Request schon wahnsinnig viel Arbeit geleistet wurde, und prüft dann einfach nur die aufgerufene Domain?

Ich hatte schon öfters versucht, diesen Aufruf ganz oben in die index zu schreiben, nur hat das nie funktioniert; jetzt gerade habe ich rausgefunden, warum.

Die 2 redirects, die ich habe, funktionieren erst nach dem ersten
header("HTTP/1.1 200 ok");
im Dokument, ist das ein Bug oder so gewollt?

Was mir hingegen als Verbesserung deines Loggings eingefallen ist: Der Referrer fehlt. Nur mit dieser Info weißt du, wo der fehlerhafte Link aufzufinden ist, dessen Ergebnis du da gerade loggst.

Ja, stimmt, daran hatte ich auch gedacht, kam aber nicht auf Referer.
Nur jetzt habe ich ein Problem mit dem Referer, mit:

((isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : 'No Matches')

bekomme ich immer 'No Matches', also keinen Referer, was mache ich denn hier falsch?

mfg

--
echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
array(2) {
  ["SELFCODE"]=>
  string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
  ["Meaningful"]=>
  string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
}