PHP Schulungs Skript: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(31 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Grundlegendes=
+
= PHP – Einführung (Grundlagen) =
*PHP steht für "Hypertext Prepocessor"
 
*Ein wichtiger Mitgründer dieser Sprache war Rasmus Lerdorf
 
*Die Syntax sind nah an die Sprachen '''C''' und '''Perl''' angelehnt
 
*Hauptsächlich für die Erstellung von dynamischen Webseiten oder Webanwendungen verwendet
 
*Zeichnet sich durch große Datenbankunterstützung, Internet-Protokolleinbindungen und Verfügbarkeit vieler verschiedener Funktionsbibliotheken aus
 
*Kann Filetypen wie Grafiken oder PDF-Dokumente erzeugen
 
  
=Der Anfang "Hallo Welt!"=
+
== Install ==
Der PHP-Code steht immer zwischen '''<?php''' und '''?>'''. Dieser bildet den Rahmen.
+
* [[php Apache2 Modul]]
<?php
 
 
?>
 
Der Befehl '''echo''' gibt Texte wieder die in Anführungszeichen dahinter geschrieben sind. <br>
 
Befehle werden immer mit einem Semikolon '''( ; )''' abgeschlossen!
 
<?php  
 
echo "Hallo Welt";
 
?>
 
  
=Sonderzeichen maskieren=
+
== 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
  
Um Anführungszeichen oder andere Sonderzeichen auszugeben benötigt man eine sogenannte Maskierung. <br>
+
== PHP im Web ==
Zum Beispiel um '''Hallo "Welt" heute''' auszugeben. Müssen die Anführungszeichen maskiert werden.
+
* Ablauf:
<?php
+
** Browser sendet Anfrage
echo "Hallo \"Welt\" heute";
+
** PHP wird ausgeführt
?>
+
** PHP verarbeitet Daten
 +
** PHP erzeugt HTML
 +
** Browser zeigt Ergebnis
  
=Auskommentieren=
+
== Der Anfang ==
Durch die Zeichen '''/*  */''' , '''#''' und '''//''' können Bereiche oder Zeilen auskommentiert werden.
+
PHP-Code steht zwischen <?php und ?>
*Beispiele
+
cat eins.php
 +
<pre>
 +
<?php
 +
echo "Hallo Welt";
 +
?>
 +
</pre>
 +
 
 +
* echo gibt Text aus
 +
* Jede Anweisung endet mit ;
 +
 
 +
== PHP und HTML ==
 +
  cat zwei.php
 +
 
 +
<pre>
 +
<!DOCTYPE html>
 +
<html>
 +
<body>
 +
 
 +
<h1>Testseite</h1>
 +
 
 +
<?php
 +
echo "Hallo Welt";
 +
?>
 +
 
 +
</body>
 +
</html>
 +
</pre>
 +
 
 +
== Variablen ==
 +
 
 +
  sudo cat  /var/www/server/drei.php
 +
 
 +
<pre>
 +
<?php
 +
$name = "Server01";
 +
$os = "Linux";
 +
 
 +
echo "$name - $os";
 +
?>
 +
</pre>
 +
 
 +
== Daten vom Benutzer ==
 +
* Formulare senden Daten an PHP
 +
* Zugriff erfolgt über $_POST
 +
 
 +
sudo cat  /var/www/server/vier.php
 +
 
 +
<pre>
 +
<!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>
 +
</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>
 +
<?php
 +
file_put_contents("test.txt", "Hallo Datei");
 +
echo file_get_contents("test.txt");
 +
?>
 +
</pre>
 +
'''Testen'''
 +
 
 +
== Shell-Zugriffe ==
 +
<pre>
 +
<?php
 +
$ip = shell_exec("ip a s enp0s3 | grep 'inet\\>' | awk '{ print \$2 }'");
 +
echo $ip;
 +
?>
 +
</pre>
  
<?php
+
* Achtung:
echo "Hallo \"Welt\" heute"; //Kommentar hinter einem befehl
+
** Nur kontrolliert einsetzen
/*
+
** Keine Benutzereingaben ungeprüft übergeben
* echo "Hallo Nichts";
 
* echo "es kommt keine Ausgabe";
 
*/
 
#Ein weiterer Kommentar
 
?>
 
=PHP und HTML mischen=
 
  
Es ist möglich den PHP Code in dem HTML Code unterzubringen. Der PHP Bereich wird mit der Klammer gekennzeichnet '''<?php  ?>'''. <br>
+
== PHP auf der Kommandozeile ==
Die PHP Bereiche können auch öfter auftreten.
+
* PHP kann auch ohne Webserver genutzt werden
  
 +
; Datei erstellen:
 +
    nano test.php
 +
 +
; Inhalt:
 
<pre>
 
<pre>
<html>
+
<?php
<h1>HTML und PHP auf einer Seite</h1>
+
print_r($argv);
+
?>
<?php
 
echo "Hallo Welt";
 
?>
 
</html>
 
 
</pre>
 
</pre>
 +
 +
; Aufruf:
 +
    php test.php hallo welt
 +
 +
; Ausgabe:
 +
<pre>
 +
Array (
 +
    [0] => test.php
 +
    [1] => hallo
 +
    [2] => welt
 +
)
 +
</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>
 +
<?php
 +
echo "Hallo Welt";
 +
?>
 +
</pre>
 +
 +
; Aufgabe 2
 +
<pre>
 +
<!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>
 +
</pre>
 +
 +
; Aufgabe 3
 +
<pre>
 +
<?php
 +
$name = "Server01";
 +
$os = "Linux";
 +
 +
echo "$name - $os";
 +
?>
 +
</pre>
 +
 +
; Aufgabe 4
 +
<pre>
 +
<?php
 +
file_put_contents("test.txt", "Test");
 +
echo file_get_contents("test.txt");
 +
?>
 +
</pre>
 +
 +
== Lösungen (Konsole) ==
 +
 +
; Aufgabe 5
 +
<pre>
 +
<?php
 +
print_r($argv);
 +
?>
 +
</pre>
 +
 +
; Aufruf:
 +
    php test.php test1 test2
 +
--->
 +
 +
== 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