Per Meta-Tag das Verhalten des Internet Explorer 7 im IE 8 simulieren

Tags: Allgemein Kommentieren

Schon wieder ist ein neuer Browser auf dem Markt und damit gibt es auch für die Webdesigner wieder neue Probleme: Noch ein Browser, für den Sonderfälle gelten, noch ein Browser in dem die Seiten getestet werden müssen, noch ein Browser mit neuen Funktionen, die in anderen Browsern wieder nicht vorhanden sind.
Um im Internet Explorer 8 das Verhalten des IE 7 zu simulieren, wurde von Microsoft der Kompatibilitätsmodus, ein Emulationsmodus für IE7-Verhalten, implementiert. Wird diese gewählt, versucht der IE8 das Verhalten des IE7 zu simulieren und die Seite so anzuzeigen als würde der IE7 verwendet werden. Dies muss jedoch in den meisten Fällen vom Benutzer in Eigenregie erkannt und durchgeführt werden.
Problem also: Wie sagt man dem IE8, dass die Seite eigentlich für den IE7 optimiert ist und dieser automatisch im Kompatibilitätsmodus rendern soll?
Hierfür hat Microsoft ein neues Meta-Tage eingeführt, über welches die Kompatibilitätsansicht gesteuert werden kann:

Wird dieses Tag in den Kopfbereich der Seite eingefügt, wird dem IE8 dazu geraten, den IE7 zu emulieren. Diese Möglichkeit ist eine offizielle Methode zur Darstellung von Seiten im IE7-Look.

Subdomain bestimmen

Tags: PHP Kommentieren

Oft möchte man die Subdomain des aktuell ausgeführten Scripts herausfinden. Die folgenden Zeilen realisieren dies:

Es werden 2 neue Elemente im Array der Superglobalen $_SERVER angelegt. „SUBDOMAIN“ und „HOST“ enthalten die aktuelle Subdomain des Scripts und den Hostnamen.

Lokalisierung des Scriptes festlegen

Tags: Allgemein Kommentieren

An Anfang eines jeden Scriptes sollte die Lokalisierung festgelegt werden. Je nach Server werden diese zwar unterschiedlich interpretiert, jedoch gibt es auch einige Konfigurationen, die mit Fehlermeldungen reagieren, wenn dies nicht getan wird.

Mit diesen beiden Zeilen wird erst einmal die Lokalisierung festgelegt. Die zweite Funktion setzt dann noch die Zeitzone – einige Server reagieren allergisch, wenn diese Funktion nicht ausgeführt wird, um eine Zeitzone festzulegen.
In diesem Beispiel wurde die Einstellung für deutsch/Deutschland verwendet.

get_magic_quotes-Einstellung prüfen und behandeln

Tags: PHP Kommentieren

Wird eine Software auf einen neuen Webserver übertragen, so kann es sein, dass dort entgegen dem Entwicklungsserver die Einstellung get_magic_quotes ein- bzw. ausgeschaltet ist. Um kontinuierlich mit einer Verhaltensweise zu arbeiten, sollte am Anfang eines jeden Scriptes der folgende Code eingefügt werden.

Zuerst wird die aktuelle Konfiguration des Servers geprüft. Ist die Einstellung aktiv, so wird dem entgegengewirkt und sämtliche übergebenen Variablen werden mit der Funktion stripslashes behandelt. Anschließend kann man davon ausgehen, dass die superglobalen auf jedem Server und überall das selbe Format haben.

Warning: require_once(…php) : failed to open stream: No such file or directory in … on line XX

Tags: PHP Kommentieren

Die Erklärung für diese Fehlermeldung lautet wie die Übersetzung: Es gibt keine Datei und kein Verzeichnis, das wie angegeben heißt. Du hast also versucht, mit dem Befehl require_once() oder auch require() eine Datei einzubinden die nicht existiert – oder jedenfalls nicht an diesem Ort. Überprüfe die Schreibweise des Pfades und des Dateinamens.

Um diesem Fehler aus dem Weg zu gehen, kannst du vor dem Aufruf der Funktion require() erst prüfen, ob die Datei existiert:

Warning: session_start() : Cannot send session cache limiter – headers already sent (output started at …:X) in … on line X

Tags: PHP Kommentieren

Diese Warnung wird ausgegeben, wenn du eine Session setzt, vorher jedoch bereits eine Ausgabe tätigst. Du musst auf jeden Fall die Session starten, bevor der Antwort-Body ausgegeben wird, also bevor der letzte Header gesendet wurde. Denn auch die Sessions werden per HTTP-Header übertragen und können daher später nicht mehr nachträglich gesetzt werden.

Die Lösung des Problems ist also, so früh wie möglich im Script, insbesondere jedoch vor der ersten Ausgabe, die Session zu starten:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in …php on line X

Tags: PHP Kommentieren

Sehr wahrscheinlich wurde hier in Zeile X ein Anführungszeichen oder Ähnliches vergessen. PHP versucht uns zu sagen, dass es den String an der Position für eine Konstante hält, da es sich nicht um ein reserviertes Wort, eine Zahl oder einen String handelt der mit Anführungszeichen eingeschlossen ist.

Dies verursacht einen solchen Fehler.
Anführungszeichen schließen und der Fehler ist behoben.

PHP Parse error: parse error, unexpected T_STRING in … on line 1

Tags: PHP Kommentieren

Diese Fehlermeldung tritt oft in Verbindung mit der Verwendung der Zend-Engine auf. Werden nämlich XML-Daten verwendet und diese direkt eingelesen, so versucht PHP den Anfang der Datei (der ja mit <? beginnt) zu interpretieren – in der Annahme es handele sich um eine PHP-Datei mit PHP-Short-Open-Tags. Dieses Verhalten ist sehr störend und heutzutage wird sowieso nur noch selten auf die Verwendung der Short-Open-Tags zurückgegriffen.

Die Lösung des Problems ist relativ einfach: In der php.ini muss die Einstellung short_open_tag umgestellt werden:

Dies bezweckt, dass die kurzen PHP-Tags (<?) nicht mehr als Beginn einer PHP-Datei interpretiert werden. Dies erlaubt dann auch wieder bequem mit XML-Daten zu arbeiten. Aber Achtung: Jetzt dürfen auch keine Short-Open-Tags mehr verwendet werden. Also fleißig <?php am Beginn eines PHP-Codeteils verwenden.

TOP