prog:php5
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| prog:php5 [2008/02/26 19:14] – mba | prog:php5 [2026/08/05 20:06] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== PHP 5 ====== | ||
| - | |||
| - | Datenpark bietet seit längerem parallel zu PHP 4 auch PHP 5 an. Im Herbst 2007 wurden sämtliche Kunden informiert, das wir auf Anfang 2008 sämtliche Webabos auf PHP 5 umstellen werden. Nun ist es so weit!\\ | ||
| - | Dies der Zeitplan der Komplettumstellung: | ||
| - | |||
| - | * **Mo, 03. März 2008**: Umstellung sämtlicher Kunden auf PHP5 (Die Option Umschaltung auf PHP 4 bleibt eine weitere Woche im Controlpanel verfügbar) | ||
| - | * **Mo, 10. März 2008**: Die Option PHP 4 wird im Controlpanel entfernt, nur noch PHP5 möglich! | ||
| - | |||
| - | Bis 10. März haben Sie also noch Zeit, Ihre PHP-Scripts anzupassen und in der neuen Umgebung zu testen. Bis dann können Sie jederzeit im [[http:// | ||
| - | Grundsätzlich sollte es keine Probleme geben mit der neuen Version. Da wir aber mit PHP 5 auch gleich ein paar Konfigurations-Änderungen eingeführt haben, müssen Sie ggf. an einigen Stellen eingreifen.\\ | ||
| - | Die untenstehenden Tips sollen Ihnen dabei behilflich sein: | ||
| - | |||
| - | ===== Upgrade Tips PHP4 nach PHP5 ===== | ||
| - | |||
| - | Die aktuelle Konfiguration von PHP 5 ist mittels '' | ||
| - | Folgende Konfigurationsparameter haben sich geändert: | ||
| - | |||
| - | ^ Konfigurationsparameter ^ PHP4 ^ PHP5 ^ | ||
| - | | register_globals | On | **Off** | | ||
| - | | allow_url_fopen | On | **On** | | ||
| - | | allow_url_include | | Off | | ||
| - | | session.gc_maxlifetime | 1440 | 10800 | | ||
| - | |||
| - | |||
| - | ==== register_globals = Off ==== | ||
| - | |||
| - | http:// | ||
| - | http:// | ||
| - | |||
| - | Die wohl grösste Änderung an der neuen Konfiguration von PHP5 betrifft '' | ||
| - | |||
| - | Rufen wir beispielsweise ein PHP-script wie folgt auf: http:// | ||
| - | Unter PHP4 konnte dann direkt auf die Variable '' | ||
| - | |||
| - | echo $id; | ||
| - | |||
| - | **Neu unter PHP5** muss der entsprechende Array verwenden werden, in unserem Fall: | ||
| - | |||
| - | echo $_GET[' | ||
| - | |||
| - | Wir empfehlen Ihnen, diese Änderung an Ihren Scripts vorzunehmen. Falls Ihnen dies definitiv zu umständlich ist und die Umstellung zu aufwendig ist, können Sie auch den folgenden Workaround anwenden: | ||
| - | |||
| - | <box 90% round orange|WORKAROUND> | ||
| - | Importieren sämtlicher GET-/ | ||
| - | |||
| - | import_request_variables(' | ||
| - | |||
| - | Danach sind sämtliche Variabeln direkt verfügbar wie unter PHP4. | ||
| - | </ | ||
| - | |||
| - | ==== File upload ==== | ||
| - | |||
| - | http:// | ||
| - | |||
| - | Betrachten wir als Beispiel dieses HTML-Formular zum Upload einer CSV-Datei: | ||
| - | |||
| - | <form action=" | ||
| - | <input type=" | ||
| - | <input type=" | ||
| - | </ | ||
| - | |||
| - | Unter PHP4 konnten wir nun direkt auf die Variable '' | ||
| - | |||
| - | |||
| - | Unter PHP4: | ||
| - | |||
| - | if (file_exists($userfile)) { | ||
| - | $handle = fopen($userfile, | ||
| - | $fileContent = fread($handle, | ||
| - | fclose($handle); | ||
| - | } | ||
| - | |||
| - | **Neu unter PHP5**: | ||
| - | |||
| - | $tmpFile = $_FILES[' | ||
| - | if (is_uploaded_file($tmpFile)) { | ||
| - | $fileContent = file_get_contents($tmpFile); | ||
| - | } | ||
| - | |||
| - | <box 90% round orange|WORKAROUND> | ||
| - | Importieren Sie den Inhalt von '' | ||
| - | |||
| - | foreach ($_FILES as $key => $value) { | ||
| - | $GLOBALS[$key] = $_FILES[$key][' | ||
| - | } | ||
| - | |||
| - | Danach können Sie wie bis anhin direkt auf die Upload-Variable (in unserem Beispiel '' | ||
| - | </ | ||
| - | |||
| - | ==== Session handling ==== | ||
| - | |||
| - | http:// | ||
| - | |||
| - | Beachten Sie, dass die Funktion '' | ||
| - | |||
| - | Unter PHP4: | ||
| - | |||
| - | session_start(); | ||
| - | $username = ' | ||
| - | session_register(' | ||
| - | |||
| - | **Neu unter PHP5**: | ||
| - | |||
| - | session_start(); | ||
| - | $_SESSION[' | ||
| - | |||
| - | Falls es ihnen nicht möglich ist, den gesamten Code umzuschreiben, | ||
| - | |||
| - | <box 90% round orange|WORKAROUND> | ||
| - | Ersetzen Sie sämtliche Aufrufe von '' | ||
| - | |||
| - | function my_session_register($name) { | ||
| - | $_SESSION[$name] = & | ||
| - | } | ||
| - | |||
| - | Die Session wird nun also wie bis anhin in PHP4 gesetzt: | ||
| - | |||
| - | session_start(); | ||
| - | $username = ' | ||
| - | session_register(' | ||
| - | |||
| - | Auf den Folgeseiten muss die '' | ||
| - | |||
| - | session_start(); | ||
| - | foreach ($_SESSION as $key => $value) { | ||
| - | $GLOBALS[$key] = & | ||
| - | } | ||
| - | echo $username; | ||
| - | </ | ||
prog/php5.1204049661.txt.gz · Zuletzt geändert: von mba
