PHP Schulungs Skript: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 99: | Zeile 99: | ||
== Arbeiten mit Dateien == | == Arbeiten mit Dateien == | ||
*cp /etc/hosts test.txt | *cp /etc/hosts test.txt | ||
| − | *sudo cat | + | *sudo cat fuenf.php |
<pre> | <pre> | ||
<?php | <?php | ||
| Zeile 109: | Zeile 109: | ||
== Shell-Zugriffe == | == Shell-Zugriffe == | ||
| − | *sudo cat | + | *sudo cat sechs.php |
<pre> | <pre> | ||
<?php | <?php | ||
| Zeile 153: | Zeile 153: | ||
* Benutzereingaben niemals vertrauen | * Benutzereingaben niemals vertrauen | ||
* Ausgaben im Browser können Code enthalten | * Ausgaben im Browser können Code enthalten | ||
| + | ===Unsicheres Skript=== | ||
| + | *cat ping.php | ||
| + | <syntaxhighlight lang="html"> | ||
| + | <!DOCTYPE html> | ||
| + | <html> | ||
| + | <body> | ||
| + | <h2>PING</h2> | ||
| + | <form method="post"> | ||
| + | <label for="fname">IP</label><br> | ||
| + | <input type="text" name="ip"><br> | ||
| + | <input type="submit" name="submit" value="submit"> | ||
| + | </form> | ||
| + | <br> | ||
| + | <?php | ||
| + | if(isset($_POST['submit'])){ | ||
| + | $ip = $_POST['ip']; | ||
| + | $cmd = 'ping -c 4 ' . $ip; | ||
| + | $output = shell_exec($cmd); | ||
| + | echo "<pre> $output</pre>"; | ||
| + | } | ||
| + | ?> | ||
| + | </body> | ||
| + | </html> | ||
| + | </syntaxhighlight> | ||
== Aufgaben (Web) == | == Aufgaben (Web) == | ||
Aktuelle Version vom 9. Juni 2026, 11:36 Uhr
PHP – Einführung (Grundlagen)
Install
- sudo apt install php libapache2-mod-php php-mysql
- systemctl restart apache2
Wir nehmen blau als Webseite
- cd /var/www/blau/
- rm index.html
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
- cp /etc/hosts test.txt
- sudo cat fuenf.php
<?php
file_put_contents("test.txt", "Hallo Datei");
echo file_get_contents("test.txt");
?>
Testen
Shell-Zugriffe
- sudo cat sechs.php
<?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
Unsicheres Skript
- cat ping.php
<!DOCTYPE html>
<html>
<body>
<h2>PING</h2>
<form method="post">
<label for="fname">IP</label><br>
<input type="text" name="ip"><br>
<input type="submit" name="submit" value="submit">
</form>
<br>
<?php
if(isset($_POST['submit'])){
$ip = $_POST['ip'];
$cmd = 'ping -c 4 ' . $ip;
$output = shell_exec($cmd);
echo "<pre> $output</pre>";
}
?>
</body>
</html>
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