PHP Schulungs Skript: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 155: Zeile 155:
 
===Unsicheres Skript===
 
===Unsicheres Skript===
 
*cat ping.php
 
*cat ping.php
<!DOCTYPE html>
+
<syntaxhighlight lang="html">
<html>
+
<!DOCTYPE html>
<body>
+
<html>
<h2>PING</h2>
+
<body>
<form method="post">
+
<h2>PING</h2>
<label for="fname">IP</label><br>
+
<form method="post">
<input type="text" name="ip"><br>
+
<label for="fname">IP</label><br>
<input type="submit" name="submit" value="submit">
+
<input type="text" name="ip"><br>
</form>
+
<input type="submit" name="submit" value="submit">
<br>
+
</form>
<?php
+
<br>
if(isset($_POST['submit'])){
+
<?php
$ip = $_POST['ip'];
+
if(isset($_POST['submit'])){
$cmd = 'ping -c 4 ' . $ip;
+
$ip = $_POST['ip'];
$output = shell_exec($cmd);
+
$cmd = 'ping -c 4 ' . $ip;
echo "<pre> $output</pre>";
+
$output = shell_exec($cmd);
}
+
echo "<pre> $output</pre>";
?>
+
}
</body>
+
?>
</html>
+
</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