PHP Komplett

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

PHP – Schulung (Grundlagen und Kontrolle)

Install

Grundlegendes

  • PHP läuft auf dem Server und erzeugt HTML
  • Der Browser sieht nur das Ergebnis
  • PHP wird für dynamische Webseiten genutzt

PHP im Web

  • Ablauf:
    • Browser sendet Anfrage
    • PHP wird ausgeführt
    • PHP erzeugt HTML
    • Browser zeigt Ergebnis

Der Anfang

<?php
echo "Hallo Welt";
?>

Variablen

<?php
$name = "Server01";
$zahl = 10;

echo "$name hat die Zahl $zahl";
?>

PHP und HTML

<!DOCTYPE html>
<html>
<body>

<h1>Test</h1>

<?php
echo "Hallo Welt";
?>

</body>
</html>

Benutzereingaben

<!DOCTYPE html>
<html>
<body>

<form method="post">
Name: <input type="text" name="name">
<input type="submit">
</form>

<?php
if (isset($_POST['name'])) {
    echo "Hallo " . $_POST['name'];
}
?>

</body>
</html>

Kontrollstrukturen

if

<?php
$zahl = 20;

if ($zahl < 30) {
    echo "Kleiner als 30";
}
?>

if / else

<?php
$zahl = 50;

if ($zahl < 30) {
    echo "Klein";
} else {
    echo "Groß";
}
?>

if / elseif / else

<?php
$zahl = 30;

if ($zahl < 20) {
    echo "Klein";
} elseif ($zahl == 30) {
    echo "Genau 30";
} else {
    echo "Groß";
}
?>

while

<?php
$i = 0;

while ($i < 5) {
    echo $i . "<br>";
    $i++;
}
?>

for

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i . "<br>";
}
?>

Arrays

<?php
$server = array("web01", "db01", "mail01");

echo $server[0];
?>

Arrays durchlaufen

<?php
$server = array("web01", "db01", "mail01");

foreach ($server as $s) {
    echo $s . "<br>";
}
?>

Funktionen

<?php
function hallo($name) {
    return "Hallo " . $name;
}

echo hallo("Max");
?>

Funktionen mit Berechnung

<?php
function summe($a, $b) {
    return $a + $b;
}

echo summe(5, 3);
?>

Arbeiten mit Dateien

<?php
file_put_contents("test.txt", "Hallo Datei");
echo file_get_contents("test.txt");
?>

Shell-Zugriffe

<?php
$hostname = shell_exec("hostname");
echo $hostname;
?>
  • Achtung:
    • Keine ungeprüften Eingaben verwenden

PHP auf der Kommandozeile

  • PHP kann auch ohne Webserver genutzt werden
Datei
   nano test.php
Inhalt
<?php
print_r($argv);
?>
Aufruf
   php test.php test1 test2

Sicherheitsgrundlagen

  • Benutzereingaben niemals vertrauen
  • Ausgabe im Browser kann Code enthalten
  • Systembefehle sind gefährlich

Aufgaben

  • Schreibe ein Script mit if-Abfrage (Zahl prüfen)
  • Erzeuge eine Schleife von 0 bis 10
  • Lege ein Array mit 3 Servernamen an und gib alle aus
  • Schreibe eine Funktion zur Addition zweier Zahlen
  • Erstelle ein Formular und gib den Namen aus
  • Führe ein PHP-Skript auf der Konsole aus

Lösungen

if
<?php
$zahl = 10;

if ($zahl < 20) {
    echo "OK";
}
?>
Schleife
<?php
for ($i = 0; $i <= 10; $i++) {
    echo $i . "<br>";
}
?>
Array
<?php
$server = array("web01", "db01", "mail01");

foreach ($server as $s) {
    echo $s . "<br>";
}
?>
Funktion
<?php
function summe($a, $b) {
    return $a + $b;
}

echo summe(2, 3);
?>
Formular
<!DOCTYPE html>
<html>
<body>

<form method="post">
Name: <input type="text" name="name">
<input type="submit">
</form>

<?php
if (isset($_POST['name'])) {
    echo $_POST['name'];
}
?>

</body>
</html>
Konsole
<?php
print_r($argv);
?>
Aufruf
   php test.php hallo welt

Ziel

  • Verständnis für PHP-Grundlagen
  • Vorbereitung auf komplexere Anwendungen