PHP Schulungs Skript: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
  
 
== Install ==
 
== Install ==
* [[php Apache2 Modul]]
+
*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 ==
 
== Grundlegendes ==
Zeile 30: Zeile 35:
  
 
== PHP und HTML ==
 
== PHP und HTML ==
 +
cat zwei.php
 +
 
<pre>
 
<pre>
 
<!DOCTYPE html>
 
<!DOCTYPE html>
Zeile 46: Zeile 53:
  
 
== Variablen ==
 
== Variablen ==
 +
 +
  sudo cat  /var/www/server/drei.php
 +
 
<pre>
 
<pre>
 
<?php
 
<?php
Zeile 58: Zeile 68:
 
* Formulare senden Daten an PHP
 
* Formulare senden Daten an PHP
 
* Zugriff erfolgt über $_POST
 
* Zugriff erfolgt über $_POST
 +
 +
sudo cat  /var/www/server/vier.php
  
 
<pre>
 
<pre>
Zeile 86: Zeile 98:
  
 
== Arbeiten mit Dateien ==
 
== Arbeiten mit Dateien ==
 +
*cp /etc/hosts test.txt
 +
*sudo cat  fuenf.php
 
<pre>
 
<pre>
 
<?php
 
<?php
Zeile 92: Zeile 106:
 
?>
 
?>
 
</pre>
 
</pre>
 +
'''Testen'''
  
 
== Shell-Zugriffe ==
 
== Shell-Zugriffe ==
 +
*sudo cat sechs.php
 
<pre>
 
<pre>
 
<?php
 
<?php
Zeile 137: 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