logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

PHP Lektionen – Lektion 1 – Arbeiten mit Formularen

26/05/2025, by Ivan

Im Alltag erhalten wir Informationen über Fernsehen, Radio, Internet oder persönliche Gespräche. Webseiten erhalten ebenfalls Informationen von Benutzern, allerdings in spezieller Form – über Formulare. Formulare kann man mit Umfragebögen oder Antragsformularen bei offiziellen Stellen vergleichen. Obwohl die Auswahl an Formelementen begrenzt ist, erlauben Formulare, vom Benutzer alle nötigen Informationen für die Webseite zu erhalten.

Für einen erfolgreichen Unterricht sollten Sie sich auch HTML-Lektionen zum Thema Formulare ansehen.

Bevor wir mit der ersten Lektion beginnen, erstellen wir das Grundgerüst unserer Anwendung, nämlich eine Klasse, die die Steuerung unserer Webseite übernimmt.

Wir erstellen den Ordner class und darin die Datei simpleCMS.php, welche unsere Steuerungsklasse enthält. Außerdem erstellen wir die Datei index.php, die das Steuerungsobjekt startet. Zusätzlich legen wir einen leeren Ordner messages sowie die Datei style.css an. Die Struktur sieht so aus:

class/simpleCMS.php

messages/

index.php

style.css

Der Inhalt von simpleCMS.php:

<?php
class simpleCMS {  // Steuerungsklasse
  public function display_public() { // Methode zum Anzeigen von Nachrichten
  
  }
  public function display_admin() { // Methode zur Eingabe einer Nachricht
	
  }
  public function write($p) { // Methode zum Schreiben einer Nachricht
  
  }  
}
?>

Wir lassen die Methoden vorerst leer und ergänzen sie später.

Datei style.css:

*{
  margin: 0;
  padding: 0;
}

body{ 
  font: 12px "Lucida Grande",  Sans-Serif;
  background: #ccc;
}

#page-wrap{ 
  width: 500px; 
  margin: 50px auto; 
  padding: 20px; 
  background: white; 
}

h1, h2, h3{ 
  font: 28px Georgia, Serif; 
  border-bottom: 1px dotted #ccc;
  margin: 0 0 10px 0; 
}

.clear{ 
  clear: both; 
}

input[type="text"], textarea{ 
  padding: 3px; 
  border: 1px solid #666; 
  width: 350px;	
  margin: 0 0 15px 0; 
}

input[type="text"]{ 
  font: 28px Georgia, Serif; 
}

textarea { 
  height: 100px; 
  font: 12px "Lucida Grande", Sans-Serif; 
}

label 	{ 
  background: #666; 
  color: white; 
  padding: 2px 6px; 
}

.post{ 
  margin: 0 0 20px 0; 
}

Datei index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>PHP lernen</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
  	<div id="page-wrap">
    <?php
    
      include_once('class/simpleCMS.php'); // Klassendatei einbinden
      $obj = new simpleCMS(); // Steuerungsobjekt erstellen 
  ?>
   </div>
  </body>
</html>

Wie das funktioniert: Beim Laden der Seite wird index.php ausgeführt, die aktuell noch leer wirkt. Wir binden die Klasse ein und erzeugen ein Objekt. Dieses Objekt besitzt Methoden, die wir je nach Bedarf aufrufen. Den richtigen Moment bestimmen wir später mit Bedingungen via if.

Bevor wir mit den Dateien weitermachen, klären wir globale Variablen $_GET und $_POST.

Globale Variable $_GET

HTML-Formulare haben das Attribut method („get“ oder „post“). Je nach Methode landen die Formulardaten in $_GET oder $_POST. Beispiel:

<form action="welcome.php" method="get">
Name: <input type="text" name="fname" />
Alter: <input type="text" name="age" />
<input type="submit" />
</form> 

Nach Klick auf Submit gelangt man auf:

http://sitename/welcome.php?fname=Peter&age=37

So entsteht die $_GET-Variable – Werte nach dem Fragezeichen:

<?php
print $_GET['fname'];
print $_GET['age'];
?>

$_GET ist ein Array mit Werten aus der URL. Man kann Daten so zwischen Seiten übertragen, ohne Formulare zu nutzen, z.B. bei:

http://sitename/example.php?number=45

Mit diesem Skript:

<?php
  print $_GET['number'];
?>

Wird die Zahl aus der URL ausgegeben.

Globale Variable $_POST

$_POST wird in Formularen genauso wie $_GET verwendet. Beispiel:

<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Alter: <input type="text" name="age" />
<input type="submit" />
</form> 

Nach Klick auf Submit gelangt man auf:

http://sitename/welcome.php

Und mit PHP greift man auf $_POST zu:

<?php
print $_POST['fname'];
print $_POST['age'];
?>

Der Unterschied zu $_GET: $_POST-Werte stehen nicht in der URL und sind nicht sichtbar, nur PHP kann sie lesen.

Jetzt erstellen wir ein Formular zum Eintragen von Nachrichten. Nachricht hinzufügen via POST, Steuerung via GET:

public function display_admin() { // Eingabemethode	
  $content = '';
  $content .= '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">'; // aktuelles Skript
  $content .= '<label for="title">Name:</label><br />';
  $content .= '<input name="title" id="title" type="text" maxlength="150" />';
  $content .= '<div class="clear"></div>';
  $content .= '<label for="bodytext">Nachricht:</label><br />';
  $content .= '<textarea name="bodytext" id="bodytext"></textarea>';	
  $content .= '<div class="clear"></div>';	
  $content .= '<input type="submit" value="Nachricht hinzufügen" />';	
  $content .= '</form>';		
  $content .= '<p><a href="/index.php">Zurück zur Startseite</a></p>';    
  return $content;  
}

Ersetzen Sie die Methode display_admin() mit dem obigen Code. Dieses Formular wird angezeigt, wenn man eine Nachricht hinzufügen will. Standardmäßig werden Nachrichten angezeigt. Wir sagen, dass das Formular angezeigt wird, wenn in der URL admin=1 steht, also:

http://test/index.php?admin=1

Deshalb ändern wir index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
  <head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>PHP lernen</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
  	<div id="page-wrap">
    <?php
    
      include_once('class/simpleCMS.php'); // Klassendatei einbinden
      $obj = new simpleCMS(); // Steuerungsobjekt erstellen

	  
      if( $_GET['admin'] == 1 ){ // wenn Variable admin=1 in URL
	    print $obj->display_admin(); // Formular anzeigen
	  }else{
	    print $obj->display_public(); // sonst Nachrichten anzeigen
	  }
     
    ?>	  
	</div>
  </body>
</html>

Und wir ändern die Anzeige der Nachrichten (ohne Parameter):

  public function display_public() { // Methode zum Anzeigen der Nachrichten
    $content = '';
	$content .= '<p><a href="/index.php?admin=1">Nachricht hinzufügen</a></p>';
    return $content;
  }

Wir fügen einen Link zum Formular hinzu.

Wenn beim Laden der Seite Sonderzeichen falsch angezeigt werden, erstellen Sie eine Datei .htaccess (unter Windows kann das schwierig sein, kopieren Sie ggf. eine bestehende Datei und machen sie leer) mit der Zeile:

AddDefaultCharset utf-8

Damit wird der Server angewiesen, UTF-8 zu verwenden.

Nun haben wir ein Formular, das Daten an eine andere Seite sendet. Um die Funktion zu prüfen, können Sie den Methoden-Parameter des Formulars zu get ändern:

$content .=	'<form action="' . $_SERVER['PHP_SELF'] . '" method="get">';

Dann werden die Formularwerte an index.php übergeben. Die Verarbeitung der Werte behandeln wir in der nächsten Lektion, wenn wir lernen, mit Dateien zu arbeiten und Daten speichern.

Прикрепленные файлы