cvs: phpdoc-de / Translators /chapters tutorial.xml
| From: | Mark Wiesemann | Date: | Sat, 04 Jan 2003 18:25:28 +0000 |
| Subject: | cvs: phpdoc-de / Translators /chapters tutorial.xml | ||
| Groups: | php.doc.de | ||
| Request: | Send a blank email to doc-de+get-401@lists.php.net to get a copy of this message | ||
wiesemann Sat Jan 4 13:25:28 2003 EDT
Added files:
/phpdoc-de/chapters tutorial.xml
Modified files:
/phpdoc-de Translators
Log:
initial translation of tutorial
Index: phpdoc-de/Translators diff -u phpdoc-de/Translators:1.323 phpdoc-de/Translators:1.324 --- phpdoc-de/Translators:1.323 Fri Jan 3 15:17:17 2003 +++ phpdoc-de/Translators Sat Jan 4 13:25:27 2003 @@ -62,6 +62,7 @@ security.xml Catharina Paulsen Thomas Schöfbeck fertig (bis v1.46) install.iis.xml Kai Schröder in Arbeit +tutorial.xml Mark Wiesemann fertig (bis 1.10) ------- chmonly ------------------------------------------------------------- aboutchm.xml Mark Kronsbein fertig (bis 1.1) ------- faq ----------------------------------------------------------------- Index: phpdoc-de/chapters/tutorial.xml +++ phpdoc-de/chapters/tutorial.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.10 Maintainer: wiesemann Status: ready --> <chapter id="tutorial"> <title>Kleines Tutorial</title> <para> Auf diesen Seiten möchten wir Ihnen die Grundlagen von PHP in einem kleinen Tutorial vorstellen. Dieser Text behandelt nur das Erstellen von dynamischen Web-Seiten, obwohl PHP natürlich nicht nur dafür geeignet ist. Weitere Informationen finden Sie im Abschnitt <link linkend="intro-whatcando">Was kann PHP?</link>. </para> <para> Mit PHP erweiterte Web-Seiten werden wie normale HTML-Seiten behandelt. Sie können sie genauso wie normale HTML-Seiten erstellen und bearbeiten. </para> <sect1 id="tutorial.requirements"> <title>Was brauche ich?</title> <para> In diesem Tutorial gehen wir davon aus, dass auf Ihrem Server die PHP-Unterstützung aktiviert ist und dass die Dateiendung <filename>.php</filename> PHP zugeordnet ist. Auf den meisten Servern ist dies die Standardeinstellung für PHP-Dateien, aber fragen Sie bitte Ihren Server-Administrator, um sicherzugehen. Wenn Ihr Server PHP unterstützt, müssen Sie nichts machen. Erstellen Sie einfach Ihre <filename>.php</filename>-Dateien und legen Sie diese in Ihr Web-Verzeichnis - der Server wird sie dann für Sie parsen. Sie müssen nichts kompilieren und auch keine Zusatz-Tools installieren. Stellen Sie sich diese PHP-erweiterten Dateien wie normale HTML-Seiten mit einer ganzen Familie von "magischen" Tags, die Sie verschiedenste Dinge tun lassen, vor. </para> </sect1> <sect1 id="tutorial.firstpage"> <title>Ihre erste PHP-erweiterte Seite</title> <para> Erstellen Sie eine Datei mit dem Namen <filename>hallo.php</filename> unterhalb des Root-Verzeichnisses Ihres Web-Servers mit dem folgenden Inhalt: </para> <para> <example> <title>Unser erstes PHP-Skript: <filename>hallo.php</filename></title> <programlisting role="php"> <![CDATA[ <html> <head> <title>PHP-Test</title> </head> <body> <?php echo "Hallo Welt<p>"; ?> </body> </html> ]]> </programlisting> <para> Dieses Skript wird folgende Ausgabe erzeugen: <screen role="html"> <![CDATA[ <html> <head> <title>PHP-Test</title> </head> <body> Hallo Welt<p> </body> </html> ]]> </screen> </para> </example> </para> <para> Beachten Sie, dass dies nicht mit einem CGI-Skript vergleichbar ist. Die Datei muss nicht ausführbar oder sonst irgendwie speziell sein. Stellen Sie sich die Datei wie eine normale HTML-Datei vor, die eine spezielle Menge von Tags zur Verfügung stellt, mit denen Sie viele interessante Dinge machen können. </para> <para> Das Beispiel ist extrem einfach und natürlich brauchen Sie PHP nicht, um eine Seite wie diese zu erstellen. Denn es macht nicht mehr, als <literal>Hallo Welt</literal> mit der <function>echo</function>-Anweisung von PHP auszugeben. </para> <para> Wenn Sie dieses Beispiel ausprobiert haben und Sie aber keine Ausgabe erhalten haben oder zum Download aufgefordert worden sind oder die komplette Datei als Text erhalten haben, dann ist es sehr wahrscheinlich, dass auf Ihrem Server PHP nicht aktiviert ist. Fragen Sie in diesem Fall Ihren Administrator und weisen Sie ihn auf das <link linkend="installation">Installations-Kapitel</link> hin. Wenn Sie PHP-Skripte lokal entwickeln möchten, dann schauen Sie auf die <ulink url="&url.php.downloads;">Download-Seite</ulink>. Sie können lokal auf jedem Betriebssystem entwickeln, aber sie müssen natürlich auch einen passenden Web-Server installieren. </para> <para> Der wichtigste Punkt im Beispiel ist, Ihnen das spezielle PHP Tag-Format zu zeigen. Im Beispiel wurde <literal><?php</literal> verwendet, um den Beginn eines PHP-Tags zu kennzeichnen. Anschließend folgte die PHP-Anweisung. Mit dem schließenden Tag, <literal>?></literal>, wurde der PHP-Modus wieder verlassen. Sie können an jeder Stelle und so oft Sie wollen, in den PHP-Modus wechseln und ihn wieder verlassen. </para> <note> <title>Anmerkung zu Text-Editoren</title> <para> Es gibt eine ganze Reihe von Text-Editoren und Integrated Development Environments (IDEs), mit denen Sie Ihre PHP-Dateien erstellen, bearbeiten und managen können. Eine Liste solcher Programme finden Sie hier: <ulink url="&url.phpeditorlist;">PHP Editor's List</ulink>. Wenn Sie einen Editor vorschlagen möchten, besuchen Sie bitte die genannte Seite und bitten Sie den Betreiber der Seite, dass er den Editor der Liste hinzufügt. </para> </note> <note> <title>Anmerkung zu Textverarbeitungen</title> <para> Textverarbeitungen wie StarOffice Writer, Microsoft Word und Abiword sind keine gute Wahl, um PHP-Dateien zu bearbeiten. </para> <para> Wenn Sie eines dieser Programme für dieses Test-Skript nutzen möchten, dann müssen Sie sicherstellen, dass die Datei als "Nur Text"-Datei gespeichert wird, da PHP sonst das Skript nicht lesen und nicht ausführen kann. </para> </note> <note> <title>Anmerkung zu Notepad, dem Windows-Standard-Editor</title> <para> Wenn Sie Ihre PHP-Skripte mit Notepad schreiben, müssen Sie sicherstellen, dass Ihre Dateien mit der Endung <filename>.php</filename> gespeichert werden. (Notepad fügt die Endung <filename>.txt</filename> automatisch an den Dateinamen an, wenn Sie das nicht mit einem der folgenden Schritte verhindern.) </para> <para> Wenn Sie die Datei speichern und einen Namen für die Datei eingeben sollen, dann setzen Sie den Dateinamen in Anführungszeichen (z.B. <filename>"hallo.php"</filename>). </para> <para> Alternativ können Sie auch im "Datei speichern"-Fenster in der Drop-Down-Liste "Dateityp" die Einstellung auf "Alle Dateien" ändern. Sie können dann den Dateinamen ohne Anführungszeichen eingeben. </para> </note> </sect1> <sect1 id="tutorial.useful"> <title>Nützliches</title> <para> Kommen wir nun zu einem etwas nützlicheren Beispiel. Wir wollen prüfen, welchen Browser die Person, die die Seite besucht, benutzt. Um das zu tun, prüfen wir den "user agent"-String, den der Browser als Teil seiner HTTP-Anforderung sendet. Diese Information ist in einer <link linkend="language.variables">Variablen</link> abgelegt. In PHP beginnen Variablen immer mit einem Dollar-Zeichen. Die Variable, die uns jetzt interessiert, ist <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. </para> <note> <title>PHP Autoglobals-Anmerkung</title> <para> <link linkend="reserved.variables.server">$_SERVER</link> ist eine speziell reservierte PHP-Variable, die alle Informationen über den Webserver enthält. Diese Variable wird auch als auto- oder superglobal bezeichnet. Mehr Informationen darüber Sie auf der Manual-Seite über <link linkend="language.variables.superglobals">Autoglobals</link>. Diese speziellen Variablen wurden in PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink> eingeführt. Vorher wurden stattdessen die älteren <varname>$HTTP_*_VARS</varname>-Arrays benutzt, also z.B. <varname>$HTTP_SERVER_VARS</varname>. Auch wenn diese Variablen nicht mehr genutzt werden sollen - sie existieren weiterhin. (Beachten Sie auch die Seite <link linkend="tutorial.oldcode">Alten Code mit neuen PHP-Versionen benutzen</link>.) </para> </note> <para> Um die Variable auszugeben, schreiben wir einfach: </para> <para> <example> <title>Variable ausgeben (Array-Element)</title> <programlisting role="php"> <![CDATA[ <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> ]]> </programlisting> <para> Die Ausgabe dieses Beispiel könnte so aussehen: <screen role="html"> Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) </screen> </para> </example> </para> <para> Es gibt viele <link linkend="language.types">Typen</link> von Variablen. Im obigen Beispiel haben wir ein <link linkend="language.types.array">Array</link>-Element ausgegeben. Arrays können sehr nützlich sein. </para> <para> <varname>$_SERVER</varname> ist nur eine von vielen Variablen, die Ihnen automatisch von PHP zur Verfügung gestellt werden. Eine Liste finden Sie auf der Seite <link linkend="reserved.variables">Reservierte Variablen</link> im Manual. Eine vollständige Liste können Sie auch bekommen, wenn Sie eine Datei wie die folgende erstellen: </para> <para> <example> <title>Alle vordefinierten Variablen mit <function>phpinfo</function> ausgeben</title> <programlisting role="php"> <![CDATA[ <?php phpinfo(); ?> ]]> </programlisting> </example> </para> <para> Wenn Sie diese Datei in Ihrem Browser öffnen, sehen Sie eine Seite mit vielen Informationen über PHP zusammen mit einer Liste aller für Sie verfügbaren Variablen. </para> <para> Sie können mehrere PHP-Anweisungen innerhalb eines PHP-Tags platzieren und so kleine Code-Blöcke schreiben, die mehr als nur eine Ausgabe mit <function>echo</function> enthalten. Wenn wir zum Beispiel prüfen möchten, ob es sich beim Browser des Besuchers um den Internet Explorer handelt, können wir folgenden Code benutzen: </para> <para> <example> <title>Beispiel, das <link linkend="control-structures">Kontrollstrukturen</link> und <link linkend="functions">Funktionen</link> benutzt</title> <programlisting role="php"> <![CDATA[ <?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { echo "Sie benutzen Internet Explorer<br />"; } ?> ]]> </programlisting> <para> Die Ausgabe dieses Skripte könnte so aussehen: <screen role="html"> <![CDATA[ Sie benutzen Internet Explorer<br /> ]]> </screen> </para> </example> </para> <para> Hier haben wir Ihnen eine ganze Reihe von neuen Konzepten vorgestellt. Wir haben hier zuerst eine <link linkend="control-structures.if">if</link>-Anweisung. Wenn Sie mit der Grundlagen-Syntax von der Programmiersprache C vertraut sind, sollte Ihnen dies logisch erscheinen. Wenn Sie C oder eine andere Sprache, die die obige Syntax benutzt, nicht gut genug kennen, dann sollten Sie sich ein Buch mit einer PHP-Einführung besorgen und die ersten Kapitel lesen. Sie können natürlich auch in die <link linkend="langref">Sprachreferenz</link> des Manuals schauen. Eine Liste von PHP-Büchern finden Sie unter <ulink url="&url.php.books;">&url.php.books;</ulink>. </para> <para> Das zweite hier vorgestellte Konzept ist der Aufruf der Funktion <function>strstr</function>. <literal>strstr</literal> ist eine in PHP eingebaute Funktion, die nach einem String in einem anderen String sucht. In diesem Fall suchen wir nach <literal>"MSIE"</literal> in <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. Wenn der String gefunden wird, gibt die Funktion &true; zurück, wird er nicht gefunden, dann wird &false; zurückgegeben. Wenn &true; zurückgeben wird, wird die <link linkend="control-structures.if">if</link>-Anweisung zu &true; ausgewertet und der Code innerhalb der geschweiften Klammern wird ausgeführt. Wenn aber &false; zurückgegeben wird, wird der Code innerhalb der Klammern nicht ausgeführt. Probieren Sie weitere ähnliche Beispiele mit <link linkend="control-structures.if">if</link>, <link linkend="control-structures.else">else</link> und anderen Funktionen wie <function>strtoupper</function> oder <function>strlen</function>. Jede dieser Manual-Seiten enthält weitere Beispiele. </para> <para> Wir können jetzt einen Schritt weitergehen und sehen, wie Sie innerhalb eines PHP-Blocks den PHP-Modus verlassen und wieder in ihn hinein gelangen können: </para> <para> <example> <title>HTML- und PHP-Modus vermischt</title> <programlisting role="php"> <![CDATA[ <?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { ?> <h3>strstr muss true zurückgegeben haben</h3> <center><b>Sie benutzen Internet Explorer</b></center> <?php } else { ?> <h3>strstr muss false zurückgegeben haben</h3> <center><b>Sie benutzen nicht Internet Explorer</b></center> <?php } ?> ]]> </programlisting> <para> Die Ausgabe dieses Skripts könnte so aussehen: <screen role="html"> <![CDATA[ <h3>strstr muss true zurückgegeben haben</h3> <center><b>Sie benutzen Internet Explorer</b></center> ]]> </screen> </para> </example> </para> <para> Anstatt die PHP <literal>echo</literal>-Anweisung für die Ausgabe zu benutzen, haben wir den PHP-Modus verlassen und normales HTML verwendet. Der wichtige Punkt hierbei ist, dass der logische Ablauf des Skripts dadurch nicht gestört wird. Nur einer der beiden HTML-Blöcke wird ausgegeben - abhängig davon, ob <function>strstr</function> &true; oder &false; zurückgibt bzw. ob der String <literal>MSIE</literal> gefunden wird oder nicht. </para> </sect1> <sect1 id="tutorial.forms"> <title>Formulare verarbeiten</title> <para> Eine der mächtigsten Funktionen von PHP ist die Art, wie HTML-Formulare verarbeitet werden. Sie sollten wissen, dass jedes Element eines Formulars automatisch in Ihren PHP-Skripts verfügbar ist. Bitte lesen Sie die Seite <link linkend="language.variables.external">Variablen außerhalb von PHP</link> für weitere Informationen und Beispiele über das Benutzen von Formularen mit PHP. Hier ist ein Beispiel-HTML-Formular: </para> <para> <example> <title>Ein einfaches HTML-Formular</title> <programlisting role="html"> <![CDATA[ <form action="action.php" method="POST"> Ihr Name: <input type="text" name="name" /> Ihr Alter: <input type="text" name="alter" /> <input type="submit"> </form> ]]> </programlisting> </example> </para> <para> An diesem Formular ist nichts Besonderes. Es ist ein normales HTML-Formular ohne irgendwelche speziellen Tags. Wenn der Benutzer das Formular ausfüllt und den Submit-Button anklickt, wird die Seite <filename>action.php</filename> aufgerufen. Diese Datei könnte so aussehen: </para> <para> <example> <title>Daten des Formulars ausgeben</title> <programlisting role="php"> <![CDATA[ Hallo <?php echo $_POST["name"]; ?>. Sie sind <?php echo $_POST["alter"]; ?> Jahre alt. ]]> </programlisting> <para> Die Ausgabe des Skripts könnte dann so aussehen: <screen role="html"> <![CDATA[ Hallo Joe. Sie sind 22 Jahre alt. ]]> </screen> </para> </example> </para> <para> Es sollte einfach zu verstehen sein, was hier passiert. Die Variablen <varname>$_POST["name"]</varname> und <varname>$_POST["alter"]</varname> werden für Sie automatisch von PHP gesetzt. Weiter oben haben wir das autoglobale Array <varname>$_SERVER</varname> eingeführt, jetzt benutzen wir hier das - ebenfalls autoglobale - Array <link linkend="reserved.variables.post">$_POST</link>, dass alle POST-Daten enthält. Beachten Sie, dass die im Formular verwendete <emphasis>Methode</emphasis> POST ist. Hätten wir <emphasis>GET</emphasis> verwendet, dann wären die Daten unseres Formulars stattdessen im autoglobalen Array <link linkend="reserved.variables.get">$_GET</link> verfügbar. Sie können auch das autoglobale Array <link linkend="reserved.variables.request">$_REQUEST</link> benutzen, wenn die Quelle der Daten keine Rolle spielt. Dieses Array enthält die GET-, POST-, COOKIE- und FILE-Daten. Vgl. auch die <function>import_request_variables</function>-Funktion. </para> </sect1> <sect1 id="tutorial.oldcode"> <title>Alten Code mit neuen PHP-Versionen benutzen</title> <para> Dadurch dass PHP eine immer beliebtere Skriptsprache ist, gibt es immer mehr Quellen, die Ihnen Code-Listings zur Verfügung zu stellen. Die PHP-Entwickler haben versucht, den größten Teil der Sprache abwärtskompatibel zu halten. Das bedeutet, dass ein Skript, das für eine ältere PHP-Version geschrieben wurde, (im Idealfall) ohne Änderungen auch unter einer neueren PHP-Version läuft. In der Praxis sind aber meist einige Änderungen nötig. </para> <para> Zwei der wichtigsten aktuellen Änderungen, die alten Code betreffen, sind: <itemizedlist> <listitem> <simpara> Die Mißbilligung der alten <varname>$HTTP_*_VARS</varname>-Arrays (die global gemacht werden mussten, wenn man sie innerhalb einer Funktion nutzen wollte). In PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink> wurden die folgenden <link linkend="language.variables.superglobals">autoglobalen Arrays</link> eingeführt: <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> und <varname>$_SESSION</varname>. Die älteren <varname>$HTTP_*_VARS</varname>-Arrays, wie <varname>$HTTP_POST_VARS</varname>, existierten bereits seit PHP 3 und sind auch immer noch verfügbar. </simpara> </listitem> <listitem> <simpara> Externe Variablen werden standardmäßig nicht mehr im globalen Namensraum registriert. Mit anderen Worten, seit PHP <ulink url="&url.php.release4.2.0;">4.2.0</ulink> ist <emphasis>off</emphasis> die Standard-Einstellung für die PHP-Direktive <link linkend="ini.register-globals">register_globals</link>. Die empfohlene Methode, auf diese Werte zuzugreifen, ist, die oben genannten autoglobalen Arrays zu verwenden. Ältere Skripte, Bücher und Tutorials gehen eventuell davon aus, dass diese Einstellung auf <emphasis>on</emphasis> steht. Wäre die Einstellung on, wäre die Variable <varname>$id</varname> aus der URL <literal>http://www.example.com/foo.php?id=42</literal> verfügbar. Unabhängig davon, ob on oder off, ist immer <varname>$_GET['id']</varname> verfügbar. </simpara> </listitem> </itemizedlist> Für weitere Details über diese Änderungen siehe die Seite über <link linkend="language.variables.predefined">vordefinierte Variablen</link> und die Links dort. </para> </sect1> <sect1 id="tutorial.whatsnext"> <title>Und weiter?</title> <para> Mit dem Wissen, das Sie jetzt haben, sollte es Ihnen möglich sein, das meiste aus diesem Manual und die vielen Beispiel-Skripte in den Beispiel-Archiven zu verstehen. Sie können weitere auf den php.net-Seiten verfügbare Beispiele auf der folgenden Seite finden: <ulink url="&url.php.links;">&url.php.links;</ulink>. </para> </sect1> </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
Index: phpdoc-de/Translators diff -u phpdoc-de/Translators:1.323 phpdoc-de/Translators:1.324 --- phpdoc-de/Translators:1.323 Fri Jan 3 15:17:17 2003 +++ phpdoc-de/Translators Sat Jan 4 13:25:27 2003 @@ -62,6 +62,7 @@ security.xml Catharina Paulsen Thomas Schöfbeck fertig (bis v1.46) install.iis.xml Kai Schröder in Arbeit +tutorial.xml Mark Wiesemann fertig (bis 1.10) ------- chmonly ------------------------------------------------------------- aboutchm.xml Mark Kronsbein fertig (bis 1.1) ------- faq ----------------------------------------------------------------- Index: phpdoc-de/chapters/tutorial.xml +++ phpdoc-de/chapters/tutorial.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.10 Maintainer: wiesemann Status: ready --> <chapter id="tutorial"> <title>Kleines Tutorial</title> <para> Auf diesen Seiten möchten wir Ihnen die Grundlagen von PHP in einem kleinen Tutorial vorstellen. Dieser Text behandelt nur das Erstellen von dynamischen Web-Seiten, obwohl PHP natürlich nicht nur dafür geeignet ist. Weitere Informationen finden Sie im Abschnitt <link linkend="intro-whatcando">Was kann PHP?</link>. </para> <para> Mit PHP erweiterte Web-Seiten werden wie normale HTML-Seiten behandelt. Sie können sie genauso wie normale HTML-Seiten erstellen und bearbeiten. </para> <sect1 id="tutorial.requirements"> <title>Was brauche ich?</title> <para> In diesem Tutorial gehen wir davon aus, dass auf Ihrem Server die PHP-Unterstützung aktiviert ist und dass die Dateiendung <filename>.php</filename> PHP zugeordnet ist. Auf den meisten Servern ist dies die Standardeinstellung für PHP-Dateien, aber fragen Sie bitte Ihren Server-Administrator, um sicherzugehen. Wenn Ihr Server PHP unterstützt, müssen Sie nichts machen. Erstellen Sie einfach Ihre <filename>.php</filename>-Dateien und legen Sie diese in Ihr Web-Verzeichnis - der Server wird sie dann für Sie parsen. Sie müssen nichts kompilieren und auch keine Zusatz-Tools installieren. Stellen Sie sich diese PHP-erweiterten Dateien wie normale HTML-Seiten mit einer ganzen Familie von "magischen" Tags, die Sie verschiedenste Dinge tun lassen, vor. </para> </sect1> <sect1 id="tutorial.firstpage"> <title>Ihre erste PHP-erweiterte Seite</title> <para> Erstellen Sie eine Datei mit dem Namen <filename>hallo.php</filename> unterhalb des Root-Verzeichnisses Ihres Web-Servers mit dem folgenden Inhalt: </para> <para> <example> <title>Unser erstes PHP-Skript: <filename>hallo.php</filename></title> <programlisting role="php"> <![CDATA[ <html> <head> <title>PHP-Test</title> </head> <body> <?php echo "Hallo Welt<p>"; ?> </body> </html> ]]> </programlisting> <para> Dieses Skript wird folgende Ausgabe erzeugen: <screen role="html"> <![CDATA[ <html> <head> <title>PHP-Test</title> </head> <body> Hallo Welt<p> </body> </html> ]]> </screen> </para> </example> </para> <para> Beachten Sie, dass dies nicht mit einem CGI-Skript vergleichbar ist. Die Datei muss nicht ausführbar oder sonst irgendwie speziell sein. Stellen Sie sich die Datei wie eine normale HTML-Datei vor, die eine spezielle Menge von Tags zur Verfügung stellt, mit denen Sie viele interessante Dinge machen können. </para> <para> Das Beispiel ist extrem einfach und natürlich brauchen Sie PHP nicht, um eine Seite wie diese zu erstellen. Denn es macht nicht mehr, als <literal>Hallo Welt</literal> mit der <function>echo</function>-Anweisung von PHP auszugeben. </para> <para> Wenn Sie dieses Beispiel ausprobiert haben und Sie aber keine Ausgabe erhalten haben oder zum Download aufgefordert worden sind oder die komplette Datei als Text erhalten haben, dann ist es sehr wahrscheinlich, dass auf Ihrem Server PHP nicht aktiviert ist. Fragen Sie in diesem Fall Ihren Administrator und weisen Sie ihn auf das <link linkend="installation">Installations-Kapitel</link> hin. Wenn Sie PHP-Skripte lokal entwickeln möchten, dann schauen Sie auf die <ulink url="&url.php.downloads;">Download-Seite</ulink>. Sie können lokal auf jedem Betriebssystem entwickeln, aber sie müssen natürlich auch einen passenden Web-Server installieren. </para> <para> Der wichtigste Punkt im Beispiel ist, Ihnen das spezielle PHP Tag-Format zu zeigen. Im Beispiel wurde <literal><?php</literal> verwendet, um den Beginn eines PHP-Tags zu kennzeichnen. Anschließend folgte die PHP-Anweisung. Mit dem schließenden Tag, <literal>?></literal>, wurde der PHP-Modus wieder verlassen. Sie können an jeder Stelle und so oft Sie wollen, in den PHP-Modus wechseln und ihn wieder verlassen. </para> <note> <title>Anmerkung zu Text-Editoren</title> <para> Es gibt eine ganze Reihe von Text-Editoren und Integrated Development Environments (IDEs), mit denen Sie Ihre PHP-Dateien erstellen, bearbeiten und managen können. Eine Liste solcher Programme finden Sie hier: <ulink url="&url.phpeditorlist;">PHP Editor's List</ulink>. Wenn Sie einen Editor vorschlagen möchten, besuchen Sie bitte die genannte Seite und bitten Sie den Betreiber der Seite, dass er den Editor der Liste hinzufügt. </para> </note> <note> <title>Anmerkung zu Textverarbeitungen</title> <para> Textverarbeitungen wie StarOffice Writer, Microsoft Word und Abiword sind keine gute Wahl, um PHP-Dateien zu bearbeiten. </para> <para> Wenn Sie eines dieser Programme für dieses Test-Skript nutzen möchten, dann müssen Sie sicherstellen, dass die Datei als "Nur Text"-Datei gespeichert wird, da PHP sonst das Skript nicht lesen und nicht ausführen kann. </para> </note> <note> <title>Anmerkung zu Notepad, dem Windows-Standard-Editor</title> <para> Wenn Sie Ihre PHP-Skripte mit Notepad schreiben, müssen Sie sicherstellen, dass Ihre Dateien mit der Endung <filename>.php</filename> gespeichert werden. (Notepad fügt die Endung <filename>.txt</filename> automatisch an den Dateinamen an, wenn Sie das nicht mit einem der folgenden Schritte verhindern.) </para> <para> Wenn Sie die Datei speichern und einen Namen für die Datei eingeben sollen, dann setzen Sie den Dateinamen in Anführungszeichen (z.B. <filename>"hallo.php"</filename>). </para> <para> Alternativ können Sie auch im "Datei speichern"-Fenster in der Drop-Down-Liste "Dateityp" die Einstellung auf "Alle Dateien" ändern. Sie können dann den Dateinamen ohne Anführungszeichen eingeben. </para> </note> </sect1> <sect1 id="tutorial.useful"> <title>Nützliches</title> <para> Kommen wir nun zu einem etwas nützlicheren Beispiel. Wir wollen prüfen, welchen Browser die Person, die die Seite besucht, benutzt. Um das zu tun, prüfen wir den "user agent"-String, den der Browser als Teil seiner HTTP-Anforderung sendet. Diese Information ist in einer <link linkend="language.variables">Variablen</link> abgelegt. In PHP beginnen Variablen immer mit einem Dollar-Zeichen. Die Variable, die uns jetzt interessiert, ist <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. </para> <note> <title>PHP Autoglobals-Anmerkung</title> <para> <link linkend="reserved.variables.server">$_SERVER</link> ist eine speziell reservierte PHP-Variable, die alle Informationen über den Webserver enthält. Diese Variable wird auch als auto- oder superglobal bezeichnet. Mehr Informationen darüber Sie auf der Manual-Seite über <link linkend="language.variables.superglobals">Autoglobals</link>. Diese speziellen Variablen wurden in PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink> eingeführt. Vorher wurden stattdessen die älteren <varname>$HTTP_*_VARS</varname>-Arrays benutzt, also z.B. <varname>$HTTP_SERVER_VARS</varname>. Auch wenn diese Variablen nicht mehr genutzt werden sollen - sie existieren weiterhin. (Beachten Sie auch die Seite <link linkend="tutorial.oldcode">Alten Code mit neuen PHP-Versionen benutzen</link>.) </para> </note> <para> Um die Variable auszugeben, schreiben wir einfach: </para> <para> <example> <title>Variable ausgeben (Array-Element)</title> <programlisting role="php"> <![CDATA[ <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> ]]> </programlisting> <para> Die Ausgabe dieses Beispiel könnte so aussehen: <screen role="html"> Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) </screen> </para> </example> </para> <para> Es gibt viele <link linkend="language.types">Typen</link> von Variablen. Im obigen Beispiel haben wir ein <link linkend="language.types.array">Array</link>-Element ausgegeben. Arrays können sehr nützlich sein. </para> <para> <varname>$_SERVER</varname> ist nur eine von vielen Variablen, die Ihnen automatisch von PHP zur Verfügung gestellt werden. Eine Liste finden Sie auf der Seite <link linkend="reserved.variables">Reservierte Variablen</link> im Manual. Eine vollständige Liste können Sie auch bekommen, wenn Sie eine Datei wie die folgende erstellen: </para> <para> <example> <title>Alle vordefinierten Variablen mit <function>phpinfo</function> ausgeben</title> <programlisting role="php"> <![CDATA[ <?php phpinfo(); ?> ]]> </programlisting> </example> </para> <para> Wenn Sie diese Datei in Ihrem Browser öffnen, sehen Sie eine Seite mit vielen Informationen über PHP zusammen mit einer Liste aller für Sie verfügbaren Variablen. </para> <para> Sie können mehrere PHP-Anweisungen innerhalb eines PHP-Tags platzieren und so kleine Code-Blöcke schreiben, die mehr als nur eine Ausgabe mit <function>echo</function> enthalten. Wenn wir zum Beispiel prüfen möchten, ob es sich beim Browser des Besuchers um den Internet Explorer handelt, können wir folgenden Code benutzen: </para> <para> <example> <title>Beispiel, das <link linkend="control-structures">Kontrollstrukturen</link> und <link linkend="functions">Funktionen</link> benutzt</title> <programlisting role="php"> <![CDATA[ <?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { echo "Sie benutzen Internet Explorer<br />"; } ?> ]]> </programlisting> <para> Die Ausgabe dieses Skripte könnte so aussehen: <screen role="html"> <![CDATA[ Sie benutzen Internet Explorer<br /> ]]> </screen> </para> </example> </para> <para> Hier haben wir Ihnen eine ganze Reihe von neuen Konzepten vorgestellt. Wir haben hier zuerst eine <link linkend="control-structures.if">if</link>-Anweisung. Wenn Sie mit der Grundlagen-Syntax von der Programmiersprache C vertraut sind, sollte Ihnen dies logisch erscheinen. Wenn Sie C oder eine andere Sprache, die die obige Syntax benutzt, nicht gut genug kennen, dann sollten Sie sich ein Buch mit einer PHP-Einführung besorgen und die ersten Kapitel lesen. Sie können natürlich auch in die <link linkend="langref">Sprachreferenz</link> des Manuals schauen. Eine Liste von PHP-Büchern finden Sie unter <ulink url="&url.php.books;">&url.php.books;</ulink>. </para> <para> Das zweite hier vorgestellte Konzept ist der Aufruf der Funktion <function>strstr</function>. <literal>strstr</literal> ist eine in PHP eingebaute Funktion, die nach einem String in einem anderen String sucht. In diesem Fall suchen wir nach <literal>"MSIE"</literal> in <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. Wenn der String gefunden wird, gibt die Funktion &true; zurück, wird er nicht gefunden, dann wird &false; zurückgegeben. Wenn &true; zurückgeben wird, wird die <link linkend="control-structures.if">if</link>-Anweisung zu &true; ausgewertet und der Code innerhalb der geschweiften Klammern wird ausgeführt. Wenn aber &false; zurückgegeben wird, wird der Code innerhalb der Klammern nicht ausgeführt. Probieren Sie weitere ähnliche Beispiele mit <link linkend="control-structures.if">if</link>, <link linkend="control-structures.else">else</link> und anderen Funktionen wie <function>strtoupper</function> oder <function>strlen</function>. Jede dieser Manual-Seiten enthält weitere Beispiele. </para> <para> Wir können jetzt einen Schritt weitergehen und sehen, wie Sie innerhalb eines PHP-Blocks den PHP-Modus verlassen und wieder in ihn hinein gelangen können: </para> <para> <example> <title>HTML- und PHP-Modus vermischt</title> <programlisting role="php"> <![CDATA[ <?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { ?> <h3>strstr muss true zurückgegeben haben</h3> <center><b>Sie benutzen Internet Explorer</b></center> <?php } else { ?> <h3>strstr muss false zurückgegeben haben</h3> <center><b>Sie benutzen nicht Internet Explorer</b></center> <?php } ?> ]]> </programlisting> <para> Die Ausgabe dieses Skripts könnte so aussehen: <screen role="html"> <![CDATA[ <h3>strstr muss true zurückgegeben haben</h3> <center><b>Sie benutzen Internet Explorer</b></center> ]]> </screen> </para> </example> </para> <para> Anstatt die PHP <literal>echo</literal>-Anweisung für die Ausgabe zu benutzen, haben wir den PHP-Modus verlassen und normales HTML verwendet. Der wichtige Punkt hierbei ist, dass der logische Ablauf des Skripts dadurch nicht gestört wird. Nur einer der beiden HTML-Blöcke wird ausgegeben - abhängig davon, ob <function>strstr</function> &true; oder &false; zurückgibt bzw. ob der String <literal>MSIE</literal> gefunden wird oder nicht. </para> </sect1> <sect1 id="tutorial.forms"> <title>Formulare verarbeiten</title> <para> Eine der mächtigsten Funktionen von PHP ist die Art, wie HTML-Formulare verarbeitet werden. Sie sollten wissen, dass jedes Element eines Formulars automatisch in Ihren PHP-Skripts verfügbar ist. Bitte lesen Sie die Seite <link linkend="language.variables.external">Variablen außerhalb von PHP</link> für weitere Informationen und Beispiele über das Benutzen von Formularen mit PHP. Hier ist ein Beispiel-HTML-Formular: </para> <para> <example> <title>Ein einfaches HTML-Formular</title> <programlisting role="html"> <![CDATA[ <form action="action.php" method="POST"> Ihr Name: <input type="text" name="name" /> Ihr Alter: <input type="text" name="alter" /> <input type="submit"> </form> ]]> </programlisting> </example> </para> <para> An diesem Formular ist nichts Besonderes. Es ist ein normales HTML-Formular ohne irgendwelche speziellen Tags. Wenn der Benutzer das Formular ausfüllt und den Submit-Button anklickt, wird die Seite <filename>action.php</filename> aufgerufen. Diese Datei könnte so aussehen: </para> <para> <example> <title>Daten des Formulars ausgeben</title> <programlisting role="php"> <![CDATA[ Hallo <?php echo $_POST["name"]; ?>. Sie sind <?php echo $_POST["alter"]; ?> Jahre alt. ]]> </programlisting> <para> Die Ausgabe des Skripts könnte dann so aussehen: <screen role="html"> <![CDATA[ Hallo Joe. Sie sind 22 Jahre alt. ]]> </screen> </para> </example> </para> <para> Es sollte einfach zu verstehen sein, was hier passiert. Die Variablen <varname>$_POST["name"]</varname> und <varname>$_POST["alter"]</varname> werden für Sie automatisch von PHP gesetzt. Weiter oben haben wir das autoglobale Array <varname>$_SERVER</varname> eingeführt, jetzt benutzen wir hier das - ebenfalls autoglobale - Array <link linkend="reserved.variables.post">$_POST</link>, dass alle POST-Daten enthält. Beachten Sie, dass die im Formular verwendete <emphasis>Methode</emphasis> POST ist. Hätten wir <emphasis>GET</emphasis> verwendet, dann wären die Daten unseres Formulars stattdessen im autoglobalen Array <link linkend="reserved.variables.get">$_GET</link> verfügbar. Sie können auch das autoglobale Array <link linkend="reserved.variables.request">$_REQUEST</link> benutzen, wenn die Quelle der Daten keine Rolle spielt. Dieses Array enthält die GET-, POST-, COOKIE- und FILE-Daten. Vgl. auch die <function>import_request_variables</function>-Funktion. </para> </sect1> <sect1 id="tutorial.oldcode"> <title>Alten Code mit neuen PHP-Versionen benutzen</title> <para> Dadurch dass PHP eine immer beliebtere Skriptsprache ist, gibt es immer mehr Quellen, die Ihnen Code-Listings zur Verfügung zu stellen. Die PHP-Entwickler haben versucht, den größten Teil der Sprache abwärtskompatibel zu halten. Das bedeutet, dass ein Skript, das für eine ältere PHP-Version geschrieben wurde, (im Idealfall) ohne Änderungen auch unter einer neueren PHP-Version läuft. In der Praxis sind aber meist einige Änderungen nötig. </para> <para> Zwei der wichtigsten aktuellen Änderungen, die alten Code betreffen, sind: <itemizedlist> <listitem> <simpara> Die Mißbilligung der alten <varname>$HTTP_*_VARS</varname>-Arrays (die global gemacht werden mussten, wenn man sie innerhalb einer Funktion nutzen wollte). In PHP <ulink url="&url.php.release4.1.0;">4.1.0</ulink> wurden die folgenden <link linkend="language.variables.superglobals">autoglobalen Arrays</link> eingeführt: <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> und <varname>$_SESSION</varname>. Die älteren <varname>$HTTP_*_VARS</varname>-Arrays, wie <varname>$HTTP_POST_VARS</varname>, existierten bereits seit PHP 3 und sind auch immer noch verfügbar. </simpara> </listitem> <listitem> <simpara> Externe Variablen werden standardmäßig nicht mehr im globalen Namensraum registriert. Mit anderen Worten, seit PHP <ulink url="&url.php.release4.2.0;">4.2.0</ulink> ist <emphasis>off</emphasis> die Standard-Einstellung für die PHP-Direktive <link linkend="ini.register-globals">register_globals</link>. Die empfohlene Methode, auf diese Werte zuzugreifen, ist, die oben genannten autoglobalen Arrays zu verwenden. Ältere Skripte, Bücher und Tutorials gehen eventuell davon aus, dass diese Einstellung auf <emphasis>on</emphasis> steht. Wäre die Einstellung on, wäre die Variable <varname>$id</varname> aus der URL <literal>http://www.example.com/foo.php?id=42</literal> verfügbar. Unabhängig davon, ob on oder off, ist immer <varname>$_GET['id']</varname> verfügbar. </simpara> </listitem> </itemizedlist> Für weitere Details über diese Änderungen siehe die Seite über <link linkend="language.variables.predefined">vordefinierte Variablen</link> und die Links dort. </para> </sect1> <sect1 id="tutorial.whatsnext"> <title>Und weiter?</title> <para> Mit dem Wissen, das Sie jetzt haben, sollte es Ihnen möglich sein, das meiste aus diesem Manual und die vielen Beispiel-Skripte in den Beispiel-Archiven zu verstehen. Sie können weitere auf den php.net-Seiten verfügbare Beispiele auf der folgenden Seite finden: <ulink url="&url.php.links;">&url.php.links;</ulink>. </para> </sect1> </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->