Umstieg PHP5.2 auf PHP5.4: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Was ändert sich im Programmcode? == | == Was ändert sich im Programmcode beim Umstieg von PHP Version 5.2 nach 5.4? == | ||
Zeile 5: | Zeile 5: | ||
* betroffen $HTTP_XXXX_VARS | * betroffen $HTTP_XXXX_VARS | ||
<pre> | |||
alt: $HTTP_GET_VARS['img'] | |||
neu: $_GET['img'] | neu: $_GET['img'] | ||
alt: $HTTP_POST_VARS['password'] | alt: $HTTP_POST_VARS['password'] | ||
neu: $_POST['password'] | neu: $_POST['password'] | ||
</pre> | |||
* betroffen SERVER-Variablen und Environment | * betroffen SERVER-Variablen und Environment | ||
<pre> | |||
alt: $DOCUMENT_ROOT | alt: $DOCUMENT_ROOT | ||
neu: $_SERVER['DOCUMENT_ROOT'] | neu: $_SERVER['DOCUMENT_ROOT'] | ||
Zeile 18: | Zeile 19: | ||
alt: $HOME | alt: $HOME | ||
neu: $_ENV['HOME'] | neu: $_ENV['HOME'] | ||
</pre> | |||
* betroffen Sessions | |||
<pre> | |||
alt: session_register('var') | |||
$var = Wert | |||
neu: $_SESSION['var'] = Wert | |||
</pre> | |||
* betroffen Umlaute mit der Funktion htmlspecialchars() und htmlentities(). Die neue PHP5.4er Version hat neue Standardencoding (vor PHP5.4 ISO-8859-1, seit PHP5.4 UTF-8) | |||
<pre> | |||
alt: htmlspecialchars($text) | |||
neu: htmlspecialchars($text,NULL, "") | |||
alt: htmlentities($text) | |||
neu: htmlentities($text,NULL, "") | |||
</pre> | |||
* betroffen Quote-Symbole (" und ') die skriptseitig über htmlspecialchars() in Formularfelder (input, textarea, etc.) geschrieben werden. Der Effekt ist der gleiche wie bei den Umlauten (s.o.) | |||
<pre> | |||
alt: htmlspecialchars($text) | |||
neu: htmlspecialchars($text,ENT_QUOTES,"") | |||
</pre> | |||
== Anwendungsbeispiele == | == Anwendungsbeispiele == | ||
Zeile 28: | Zeile 48: | ||
[...] | [...] | ||
</pre> | </pre> | ||
neu: abfragen ob array-element existiert, ggf. initialisieren/definieren der Variable ''do'' | |||
<pre> | |||
if (!empty($_GET['do'])) | if (!empty($_GET['do'])) | ||
$do = $_GET['do']; | $do = $_GET['do']; | ||
Zeile 36: | Zeile 57: | ||
if ($do == 'verify') | if ($do == 'verify') | ||
[...] | [...] | ||
</pre> | |||
== Debuggen == | |||
Sämtliche Fehler, Warnungen, Notizen und Hinweise auf ''deprecated'' (veraltete) Functions können mit Hilfe des Funktionsaufrufes | |||
<pre> | |||
error_reporting(E_ALL); | |||
</pre> | |||
am Anfang eines PHP-Programmes, hinter dem öffnenden PHP Start-Tag, angezeigt werden. | |||
== Usefull Links: == | == Usefull Links: == |
Aktuelle Version vom 9. April 2013, 11:29 Uhr
Was ändert sich im Programmcode beim Umstieg von PHP Version 5.2 nach 5.4?
'alter' Code / 'neuer' Code:
- betroffen $HTTP_XXXX_VARS
alt: $HTTP_GET_VARS['img'] neu: $_GET['img'] alt: $HTTP_POST_VARS['password'] neu: $_POST['password']
- betroffen SERVER-Variablen und Environment
alt: $DOCUMENT_ROOT neu: $_SERVER['DOCUMENT_ROOT'] alt: $PHP_SELF neu: $_SERVER['PHP_SELF'] alt: $HOME neu: $_ENV['HOME']
- betroffen Sessions
alt: session_register('var') $var = Wert neu: $_SESSION['var'] = Wert
- betroffen Umlaute mit der Funktion htmlspecialchars() und htmlentities(). Die neue PHP5.4er Version hat neue Standardencoding (vor PHP5.4 ISO-8859-1, seit PHP5.4 UTF-8)
alt: htmlspecialchars($text) neu: htmlspecialchars($text,NULL, "") alt: htmlentities($text) neu: htmlentities($text,NULL, "")
- betroffen Quote-Symbole (" und ') die skriptseitig über htmlspecialchars() in Formularfelder (input, textarea, etc.) geschrieben werden. Der Effekt ist der gleiche wie bei den Umlauten (s.o.)
alt: htmlspecialchars($text) neu: htmlspecialchars($text,ENT_QUOTES,"")
Anwendungsbeispiele
alt: undefinierter index in array
$do = $_GET['do']; if ($do == 'verify') [...]
neu: abfragen ob array-element existiert, ggf. initialisieren/definieren der Variable do
if (!empty($_GET['do'])) $do = $_GET['do']; else $do = ""; if ($do == 'verify') [...]
Debuggen
Sämtliche Fehler, Warnungen, Notizen und Hinweise auf deprecated (veraltete) Functions können mit Hilfe des Funktionsaufrufes
error_reporting(E_ALL);
am Anfang eines PHP-Programmes, hinter dem öffnenden PHP Start-Tag, angezeigt werden.