PHP Schulungs Skript: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | = PHP – Einführung (Grundlagen) = | ||
| + | |||
== Install == | == Install == | ||
* [[php Apache2 Modul]] | * [[php Apache2 Modul]] | ||
== Grundlegendes == | == Grundlegendes == | ||
| − | * PHP | + | * PHP läuft auf dem Server (z. B. Apache) |
| − | + | * Der Browser sieht nur das erzeugte HTML | |
| − | * | + | * PHP wird verwendet, um dynamische Webseiten zu erstellen |
| − | * PHP wird | ||
| − | |||
| − | |||
| − | == | + | == PHP im Web == |
| − | + | * Ablauf: | |
| − | + | ** Browser sendet Anfrage | |
| − | + | ** PHP wird ausgeführt | |
| − | + | ** PHP verarbeitet Daten | |
| − | + | ** PHP erzeugt HTML | |
| − | + | ** Browser zeigt Ergebnis | |
| − | Der | + | == Der Anfang == |
| − | + | PHP-Code steht zwischen <?php und ?> | |
| + | cat eins.php | ||
<pre> | <pre> | ||
<?php | <?php | ||
| − | echo "Hallo Welt | + | echo "Hallo Welt"; |
?> | ?> | ||
</pre> | </pre> | ||
| − | + | * echo gibt Text aus | |
| − | + | * Jede Anweisung endet mit ; | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | == | + | == PHP und HTML == |
| − | + | cat zwei.php | |
| − | |||
| − | |||
| − | |||
| − | |||
<pre> | <pre> | ||
| − | < | + | <!DOCTYPE html> |
| − | + | <html> | |
| + | <body> | ||
| − | / | + | <h1>Testseite</h1> |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<?php | <?php | ||
echo "Hallo Welt"; | echo "Hallo Welt"; | ||
?> | ?> | ||
| + | |||
| + | </body> | ||
</html> | </html> | ||
</pre> | </pre> | ||
== Variablen == | == Variablen == | ||
| + | |||
| + | sudo cat /var/www/server/drei.php | ||
| + | |||
<pre> | <pre> | ||
<?php | <?php | ||
| − | $name = | + | $name = "Server01"; |
| − | $ | + | $os = "Linux"; |
| − | echo " | + | echo "$name - $os"; |
?> | ?> | ||
</pre> | </pre> | ||
| − | == | + | == Daten vom Benutzer == |
| − | PHP | + | * Formulare senden Daten an PHP |
| + | * Zugriff erfolgt über $_POST | ||
| + | |||
| + | sudo cat /var/www/server/vier.php | ||
| + | |||
<pre> | <pre> | ||
| + | <!DOCTYPE html> | ||
| + | <html> | ||
| + | <body> | ||
| + | |||
| + | <form method="post"> | ||
| + | Name: <input type="text" name="name"> | ||
| + | <input type="submit" value="Senden"> | ||
| + | </form> | ||
| + | |||
<?php | <?php | ||
| − | + | if (isset($_POST['name'])) { | |
| − | + | echo "Hallo " . $_POST['name']; | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | if (isset($ | ||
| − | echo " | ||
} | } | ||
?> | ?> | ||
| − | </ | + | |
| − | + | </body> | |
| − | + | </html> | |
| − | |||
| − | < | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</pre> | </pre> | ||
| − | == | + | == Typischer Ablauf == |
| + | * Benutzer gibt Daten ein | ||
| + | * Daten werden an PHP gesendet | ||
| + | * PHP verarbeitet die Daten | ||
| + | * Ergebnis wird im Browser angezeigt | ||
| − | == | + | == Arbeiten mit Dateien == |
<pre> | <pre> | ||
<?php | <?php | ||
| − | + | file_put_contents("test.txt", "Hallo Datei"); | |
| − | + | echo file_get_contents("test.txt"); | |
| − | |||
?> | ?> | ||
</pre> | </pre> | ||
| + | '''Testen''' | ||
| − | == | + | == Shell-Zugriffe == |
<pre> | <pre> | ||
<?php | <?php | ||
| − | + | $ip = shell_exec("ip a s enp0s3 | grep 'inet\\>' | awk '{ print \$2 }'"); | |
| − | + | echo $ip; | |
| − | |||
| − | |||
| − | |||
?> | ?> | ||
</pre> | </pre> | ||
| − | == | + | * Achtung: |
| + | ** Nur kontrolliert einsetzen | ||
| + | ** Keine Benutzereingaben ungeprüft übergeben | ||
| + | |||
| + | == PHP auf der Kommandozeile == | ||
| + | * PHP kann auch ohne Webserver genutzt werden | ||
| + | |||
| + | ; Datei erstellen: | ||
| + | nano test.php | ||
| + | |||
| + | ; Inhalt: | ||
<pre> | <pre> | ||
<?php | <?php | ||
| − | + | print_r($argv); | |
| − | |||
| − | |||
| − | |||
| − | |||
?> | ?> | ||
</pre> | </pre> | ||
| − | + | ; Aufruf: | |
| + | php test.php hallo welt | ||
| + | |||
| + | ; Ausgabe: | ||
<pre> | <pre> | ||
| − | + | Array ( | |
| − | + | [0] => test.php | |
| − | + | [1] => hallo | |
| − | + | [2] => welt | |
| − | + | ) | |
</pre> | </pre> | ||
| − | == | + | * Unterschied: |
| + | ** Web → $_POST | ||
| + | ** Konsole → $argv | ||
| + | |||
| + | == Sicherheitsgrundlagen == | ||
| + | * Benutzereingaben niemals vertrauen | ||
| + | * Ausgaben im Browser können Code enthalten | ||
| + | |||
| + | == Aufgaben (Web) == | ||
| + | * Erstelle eine PHP-Datei, die "Hallo Welt" im Browser ausgibt | ||
| + | * Baue ein Formular und gib den eingegebenen Namen aus | ||
| + | * Erzeuge Variablen und gib sie im HTML aus | ||
| + | * Speichere einen Text in einer Datei und lies ihn wieder aus | ||
| + | |||
| + | == Aufgaben (Konsole) == | ||
| + | * Führe ein PHP-Skript auf der Konsole aus | ||
| + | * Übergib Parameter und gib sie aus | ||
| + | |||
| + | <!--- | ||
| + | == Lösungen (Web) == | ||
| + | |||
| + | ; Aufgabe 1 | ||
<pre> | <pre> | ||
<?php | <?php | ||
| − | + | echo "Hallo Welt"; | |
| − | |||
?> | ?> | ||
</pre> | </pre> | ||
| − | + | ; Aufgabe 2 | |
| − | |||
<pre> | <pre> | ||
| + | <!DOCTYPE html> | ||
| + | <html> | ||
| + | <body> | ||
| + | |||
| + | <form method="post"> | ||
| + | Name: <input type="text" name="name"> | ||
| + | <input type="submit" value="Senden"> | ||
| + | </form> | ||
| + | |||
<?php | <?php | ||
| − | + | if (isset($_POST['name'])) { | |
| − | + | echo "Hallo " . $_POST['name']; | |
} | } | ||
| + | ?> | ||
| − | + | </body> | |
| − | + | </html> | |
</pre> | </pre> | ||
| − | + | ; Aufgabe 3 | |
| − | |||
| − | |||
<pre> | <pre> | ||
<?php | <?php | ||
| − | + | $name = "Server01"; | |
| − | + | $os = "Linux"; | |
| − | echo | + | |
| + | echo "$name - $os"; | ||
?> | ?> | ||
</pre> | </pre> | ||
| − | + | ; Aufgabe 4 | |
<pre> | <pre> | ||
<?php | <?php | ||
| − | + | file_put_contents("test.txt", "Test"); | |
| − | + | echo file_get_contents("test.txt"); | |
| − | echo | ||
?> | ?> | ||
</pre> | </pre> | ||
| − | == | + | == Lösungen (Konsole) == |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ; Aufgabe 5 | |
<pre> | <pre> | ||
<?php | <?php | ||
| − | + | print_r($argv); | |
| − | |||
| − | |||
?> | ?> | ||
</pre> | </pre> | ||
| − | + | ; Aufruf: | |
| − | + | php test.php test1 test2 | |
| − | + | ---> | |
| − | |||
| − | php | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | == | + | == Ziel == |
| − | * | + | * Verständnis für den Ablauf von PHP im Web |
| − | * | + | * Vorbereitung auf die weitere Anwendung |
| − | |||
Aktuelle Version vom 24. März 2026, 10:29 Uhr
PHP – Einführung (Grundlagen)
Install
Grundlegendes
- PHP läuft auf dem Server (z. B. Apache)
- Der Browser sieht nur das erzeugte HTML
- PHP wird verwendet, um dynamische Webseiten zu erstellen
PHP im Web
- Ablauf:
- Browser sendet Anfrage
- PHP wird ausgeführt
- PHP verarbeitet Daten
- PHP erzeugt HTML
- Browser zeigt Ergebnis
Der Anfang
PHP-Code steht zwischen <?php und ?>
cat eins.php
<?php echo "Hallo Welt"; ?>
- echo gibt Text aus
- Jede Anweisung endet mit ;
PHP und HTML
cat zwei.php
<!DOCTYPE html> <html> <body> <h1>Testseite</h1> <?php echo "Hallo Welt"; ?> </body> </html>
Variablen
sudo cat /var/www/server/drei.php
<?php $name = "Server01"; $os = "Linux"; echo "$name - $os"; ?>
Daten vom Benutzer
- Formulare senden Daten an PHP
- Zugriff erfolgt über $_POST
sudo cat /var/www/server/vier.php
<!DOCTYPE html>
<html>
<body>
<form method="post">
Name: <input type="text" name="name">
<input type="submit" value="Senden">
</form>
<?php
if (isset($_POST['name'])) {
echo "Hallo " . $_POST['name'];
}
?>
</body>
</html>
Typischer Ablauf
- Benutzer gibt Daten ein
- Daten werden an PHP gesendet
- PHP verarbeitet die Daten
- Ergebnis wird im Browser angezeigt
Arbeiten mit Dateien
<?php
file_put_contents("test.txt", "Hallo Datei");
echo file_get_contents("test.txt");
?>
Testen
Shell-Zugriffe
<?php
$ip = shell_exec("ip a s enp0s3 | grep 'inet\\>' | awk '{ print \$2 }'");
echo $ip;
?>
- Achtung:
- Nur kontrolliert einsetzen
- Keine Benutzereingaben ungeprüft übergeben
PHP auf der Kommandozeile
- PHP kann auch ohne Webserver genutzt werden
- Datei erstellen
nano test.php
- Inhalt
<?php print_r($argv); ?>
- Aufruf
php test.php hallo welt
- Ausgabe
Array (
[0] => test.php
[1] => hallo
[2] => welt
)
- Unterschied:
- Web → $_POST
- Konsole → $argv
Sicherheitsgrundlagen
- Benutzereingaben niemals vertrauen
- Ausgaben im Browser können Code enthalten
Aufgaben (Web)
- Erstelle eine PHP-Datei, die "Hallo Welt" im Browser ausgibt
- Baue ein Formular und gib den eingegebenen Namen aus
- Erzeuge Variablen und gib sie im HTML aus
- Speichere einen Text in einer Datei und lies ihn wieder aus
Aufgaben (Konsole)
- Führe ein PHP-Skript auf der Konsole aus
- Übergib Parameter und gib sie aus
Ziel
- Verständnis für den Ablauf von PHP im Web
- Vorbereitung auf die weitere Anwendung