PHP Versionsumstieg

Hallo,
die Nachricht:„Ab dem 01.04.2013 werden wir die PHP-Versionen 4 und 5.2 nicht mehr unterstützen. Dafür werden wir die Version PHP 5.4 einsetzen.“ habe ich ebenfalls von 1&1 erhalten.

Ich habe meine PHP-Skripte (wurden geschrieben unter Version3, zur Zeit unter 4 laufend) dann gleich getestet mit der Version 5.4. Sie laufen damit nicht. Die Skripte versenden von meinen Internetseiten (HTML+Jscript) aus emails und das funktioniert offenbar nicht mehr. Leider bin ich kein PHP-Experte und stehe voll auf dem Schlauch. Vielleicht gibt es typische Fehler bzw. ein tyisches Umstiegsproblem, die andere PHP-Nutzer bereits kennen.

Gösta

Hallo Gösta,

hier habe ich Infos dazu gefunden:
http://blog.teamtreehouse.com/how-to-debug-in-php

Die interessanten Befehle sind
ini_set(‚display_errors‘, ‚On‘);
und
error_reporting(E_ALL);

Die Parameter etc. kannst Du bei php.net nachschlagen.

Dann bekommst Du aussagekräftige Fehlermeldungen.

Oft sind es „deprecated“ (abgekündigte) Befehle, die in PHP 5 rausgefallen sind. Aber das sagt dir error_reporting alles.

Greets,
Markus Seifert

Hallo,

es ist natürich ohne Kenntnis deines Quellcodes nicht möglich, jede Änderung im Einzelnen zu kommentieren und Empfehlungen zu geben.

Vermutlich hast du grundsätzlich Probleme mit den Änderungen bei den Superglobalen Variablen.

  1. Ganz allgemein stehen die wichtigsten Änderungen unter http://php.net/manual/de/tutorial.oldcode.php nachzulesen.

  2. Setze den Errorlevel zusätzlich auf E_DEPRECATED, dann erhälts du für alle auslaufenden Befehle eine Hinweismeldung. Z.B. mit

error_reporting(error_reporting()|E_DEPRECATED);

Grüße
Tom

Hallo Markus,

zunächst Danke Dir, das Du Dich mit meinen Problemen befasst. Ich denke auch das ein vernünftiges Debbugging mir helfen könnte. Sieht so aus, dass dies normale PHP-Befehle sind, die sollten dann wohl ganz an den Anfang des Scriptes. Wie und wo erfolgt die Ausgabe der Fehlermeldungen ? Auf der Seite wo auch die Echobefehle ausgeben ?
Mit dem Link werde ich mich noch beschäftigen,

Gruß Gösta

Hallo Tom,

zunächst auch Dir ein Dankeschön, dass Du Dich mit meinen Problemen befasst. Ich denke auch dass ein vernünftiges Debugging mir helfen könnte. Wie und wo erfolgt die Ausgabe der Fehlermeldungen ? Auf der Seite wo auch die Echobefehle ausgeben ?
Mit dem Link werde ich mich noch beschäftigen,

Gruß Gösta

Hallo Gösta,

auf Grund deines Zitates denke ich, dass dein Provider 1&1 (oder ein Reseller von 1&1) ist.

Die Ausgabe der Fehler kann man Steuern: Im Normalfalle werden sie über den gleichen Weg ausgegeben, wie eben auch echo, also auf der Web-Seite.

Es gibt mehrere Möglichkeiten:

  1. Fehlermeldungen unterdrücken =Unsinn.

  2. Ausgabe in eine Sytemdatei bzw stdout oder stderr, aber sicher bei deinem Produkt nicht möglich. (sh display_errors)

  3. Behandeln der Fehler mit err_log()
    3.0) Log-Subsystem von PHP - oft nicht zugreifbar
    3.1) E-Mail an dich. Jeder Fehler ein Mail, kann zu E-Mail-Flut führen
    3.2) entfallen
    3.3) an eine Datei anfügen. Würde ich empfehlen. (du mußt natürlich zugriff zu der Datei haben, sie sollte in einem nicht für http zugänglichen Verzeichnis stehen)
    3.4) SAPI-Logging-Handler - uniteressant.

  4. eine eigene Fehlerbehandlungsfunktion schreiben mit set_error_handler (…)

Am besten schreibst du alles was die Fehlerbehandlung betrifft in eine extra Datei und fügst diese zu beginn jedes Scriptes mit include zu. So kannst du die Fehlerbehandlung zentral ändern.

Grüße

Tom

  1. Die Umleitung der Fehler mit einer Fehlerbehandlung

Ja, da wo die Befehle ausgegeben werden wird stattdessen die Fehlermeldung ausgegeben.

Viele Grüße,
Markus