Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:php5

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
prog:php5 [2008/02/26 16:40] – angelegt phiprog:php5 [2026/08/05 20:06] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== PHP 5 ====== 
- 
-===== Upgrade Tips PHP4 nach PHP5 ===== 
- 
-^ 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 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: 
- 
-  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.1204040422.txt.gz · Zuletzt geändert: von phi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki