Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:php5

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
prog:php5 [2008/02/26 19:14] mbaprog: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://controlpanel.datenpark.ch/|Controlpanel]] unter der Rubrik "Konfiguration" zwischen PHP 4 und 5 umschalten. Die Einstellung ist jeweils spätestens nach 1 min aktiv.\\ 
-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 ''phpinfo()'' ersichtlich ([[http://www.nonprofit.ch/phpinfo.php|Beispiel Kundendomain nonprofit.ch]]).\\ 
-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://www.php.net/manual/en/function.import-request-variables.php\\ 
-http://www.php.net/variables.predefined 
- 
-Die wohl grösste Änderung an der neuen Konfiguration von PHP5 betrifft ''register_globals''. Neu ist dieses Feature ausgeschaltet. Variabeln, die Sie also per ''HTTP_POST'' (meist via HTML-Formular) resp. ''HTTP_GET'' (als Parameter direkt in der URL) übergeben, werden in PHP5 nicht mehr automatisch registriert. 
- 
-Rufen wir beispielsweise ein PHP-script wie folgt auf: http://www.example.com/index.php?id=5\\ 
-Unter PHP4 konnte dann direkt auf die Variable ''$id'' zugegriffen werden: 
- 
-  echo $id; 
- 
-**Neu unter PHP5** muss der entsprechende Array verwenden werden, in unserem Fall: 
- 
-  echo $_GET['id']; 
- 
-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-/POST-/COOKIE-Variabeln mittels ''import_request_variables()''. Binden Sie dazu folgende Zeile in Ihre Scripts ein (am besten in einem globalen include, ''common.inc'' oder ähnlich): 
- 
-  import_request_variables('gpc'); 
- 
-Danach sind sämtliche Variabeln direkt verfügbar wie unter PHP4. 
-</box> 
- 
-==== File upload ==== 
- 
-http://www.php.net/features.file-upload 
- 
-Betrachten wir als Beispiel dieses HTML-Formular zum Upload einer CSV-Datei: 
- 
-  <form action="upload.php" method="post" enctype="multipart/form-data"> 
-    <input type="file" maxlenght="1000000" name="userfile" accept="*.csv" /> 
-    <input type="submit" name="submitData" value="Uploaden" /> 
-  </form> 
- 
-Unter PHP4 konnten wir nun direkt auf die Variable ''$userfile'' zugreifen. Unter PHP5 müssen wir via den Array ''$_FILES['userfile']'' zugreifen. Der Pfad zur hochgeladenen Datei befindet sich in ''$_FILES['userfile']['tmp_name']'' wobei der effektive Dateiname in ''$_FILES['userfile']['name']'' steckt. Wir laden also den Inhalt der Datei wie folgt in die Variable ''$fileContent''. 
- 
- 
-Unter PHP4: 
- 
-  if (file_exists($userfile)) { 
-      $handle = fopen($userfile,  "r"); 
-      $fileContent = fread($handle, filesize($userfile)); 
-      fclose($handle); 
-  } 
- 
-**Neu unter PHP5**: 
- 
-  $tmpFile = $_FILES['userfile']['tmp_name']; 
-  if (is_uploaded_file($tmpFile)) { 
-      $fileContent = file_get_contents($tmpFile); 
-  } 
- 
-<box 90% round orange|WORKAROUND> 
-Importieren Sie den Inhalt von ''$_FILES'' in den globalen Array: 
- 
-  foreach ($_FILES as $key => $value) { 
-      $GLOBALS[$key] = $_FILES[$key]['tmp_name']; 
-  } 
- 
-Danach können Sie wie bis anhin direkt auf die Upload-Variable (in unserem Beispiel ''$userfile'') zugreifen. 
-</box> 
- 
-==== Session handling ==== 
- 
-http://www.php.net/manual/en/ref.session.php 
- 
-Beachten Sie, dass die Funktion ''session_register()'' neu unter PHP5 nicht mehr funktioniert. Sie liefert keinen Fehler, bewirkt aber auch nichts. Die Session-Variable wird nicht registriert. Neu müssen Sie die Session-Variabeln direkt in den ''$_SESSION'' Array schreiben. 
- 
-Unter PHP4: 
- 
-  session_start(); 
-  $username = 'test'; 
-  session_register('username'); 
- 
-**Neu unter PHP5**: 
- 
-  session_start(); 
-  $_SESSION['username'] = 'test'; 
- 
-Falls es ihnen nicht möglich ist, den gesamten Code umzuschreiben, können Sie auch folgenden Workaround anwenden: 
- 
-<box 90% round orange|WORKAROUND> 
-Ersetzen Sie sämtliche Aufrufe von ''session_register()'' durch die eigene Funktion ''my_session_register()'': 
- 
-  function my_session_register($name) { 
-      $_SESSION[$name] = &$GLOBALS[$name]; 
-  } 
- 
-Die Session wird nun also wie bis anhin in PHP4 gesetzt: 
- 
-  session_start(); 
-  $username = 'test'; 
-  session_register('username'); 
- 
-Auf den Folgeseiten muss die ''$_SESSION''-Variable dann "entpackt" werden, damit wir wie bis anhin auf die Variabeln zugreifen können: 
- 
-  session_start(); 
-  foreach ($_SESSION as $key => $value) { 
-      $GLOBALS[$key] = &$_SESSION[$key]; 
-  } 
-  echo $username; 
-</box> 
  
prog/php5.1204049661.txt.gz · Zuletzt geändert: von mba

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki