Form
Form-Objekts soll einem `$data`-Attribut die PHP-Konstante (array) ``$_POST`` zugewiesen werden (constructor).// mit isset($element) prüfen, ob ein bestimmter Schlüssel existiert. if( isset($myArray[$key]) ) { $myString = $myArray[$key]; // der Variable $myString den Wert aus dem Array zuweisen } ```` ### ClientCode Die erstellte Klasse ``Form`` soll beispielsweise in folgenden ClientCode eingearbeitet werden. ````php
$myForm = new Form(); $myUsername = $myForm->getField('username'); echo "Der Benutzername lautet: $myUsername"; // Ausgabe: Der Benutzername lautet: Ingo
### Tipps und Hinweise
Nutzt alle verfügbaren Ressourcen wie die Dokumentationen über
[Arrays](https://www.php.net/manual/de/language.types.array.php),
[Kontrollstrukturen](https://www.php.net/manual/de/control-structures.if.php) und
[isset()](https://www.php.net/manual/de/function.isset.php)
oder euer gemeinsames Wissen. Im schlimmsten Fall erarbeiten wir die Lösung in der nächsten
Stunde zusammen.
Wir werden die ``Form``-Klasse dann für unsere ersten richtigen Formularabfragen nutzen.
## Übung 2
Algorithmen lassen sich übersichtlich in Flussdiagrammen (Ablaufdiagramme) darstellen.
Im Folgenden ist eine zweiseitige Kontrollstruktur (``if-else``) dargestellt:

### Aufgaben
1. Zeichne zur besseren Übersicht einen Ablaufplan des Programms.
2. Markiere die zueinander gehörenden Klammerpaare jeweils farbig.
3. Bestimme die Werte, die für die variablen ``$_POST`` zurückgegeben werden kann.
4. Speichere die Datei entsprechend PSR-0 unter ``src/Form.php``.
Kurze Erinnerung zu Arrays und Verwendung einer einseitigen Kontrollstruktur:
````php
| a | b | c | d | e |
|---|---|---|---|---|
| $myArray[] = $4 | $myArray[] = $5 | $myArray[] = $6 | $myArray[] = $7 | $myArray[] = $8 |
| $myArray[] = $9 | $value geben $0 | $value geben $1 | $value geben $2 | $value geben $3 |
| $value geben $4 | $value geben $5 | $value geben $6 | $value geben $7 | $value geben $8 |
| $value geben $9 | $element) prüfen, ob ein bestimmter Schlüssel existiert. if( isset($0 | $element) prüfen, ob ein bestimmter Schlüssel existiert. if( isset($1 | $element) prüfen, ob ein bestimmter Schlüssel existiert. if( isset($2 | $element) prüfen, ob ein bestimmter Schlüssel existiert. if( isset($3 |

Ermittle die Ausgabe folgenden Programms.
<?php
$element) prüfen, ob ein bestimmter Schlüssel existiert.
if( isset($4b = 3;
$element) prüfen, ob ein bestimmter Schlüssel existiert.
if( isset($5a, $element) prüfen, ob ein bestimmter Schlüssel existiert.
if( isset($6c) {
$element) prüfen, ob ein bestimmter Schlüssel existiert.
if( isset($7a == $element) prüfen, ob ein bestimmter Schlüssel existiert.
if( isset($8b > 2)
$element) prüfen, ob ein bestimmter Schlüssel existiert.
if( isset($9a < 5 and $key]) ) {
$0string .= "Du ";
if($key]) ) {
$1b == 2)
$key]) ) {
$2c != 6 and $key]) ) {
$3string .= "hast ";
else
$key]) ) {
$4b == 3 and $key]) ) {
$5string .= "viel ";
if($key]) ) {
$6b == 2)
$key]) ) {
$7a < 5 and $key]) ) {
$8string .= "Spaß! ";
}
printText($key]) ) {
$9b,$myArray[$0_SESSION`` genutzt. Hier können Werte abgelegt
werden, die während der aktuellen Browser-Sitzung erhalten bleiben.
- Analysiere den folgenden Quellcode und erstelle ein Ablaufdiagramm.
````php
<?php
class AuthenticationController extends AbstractController
{
public function login(): string
{
if($myArray[$1this->response->redirectToRoute(302,'app_index');
$myArray[$2this->request->isFormSubmitted() and $myArray[$3encryptionService = new EncryptionService();
$myArray[$4encryptionService->encryptString($myArray[$5this->request->getFieldAsString('password')
];
if($myArray[$6loginData['password']) {
if (0 === ($myArray[$7this->repository, $myArray[$8user = $myArray[$9loginData['username']]);
if ($myString den Wert aus dem Array zuweisen
}
````
### ClientCode
Die erstellte Klasse ``Form`` soll beispielsweise in folgenden ClientCode eingearbeitet werden.
````php