Tom: Reservierungsformular

Beitrag lesen

Hello,

ein paar kleinere Korrekturen:

$_css = array();

$_css['input[name=name]']['background-color'] = '#FAA';  // hier finden sich die betroffen Feldnamen
$_css['input[name=phone]']['background-color'] = '#FAA';

lasse es ausgeben:

define ('NL',chr(13).chr(10));   // da muss es auch eine Systemkonstante geben ?

function make_css($_css)
{
 $cssstr = '    <style type="text/css">'.NL;

foreach($_css as $element => $format)
 {
  $cssstr .= "        $element".NL;
  $cssstr .= "        {".NL;

foreach($format as $formatname => $value)
  {
   $cssstr .= "            $formatname:$value;".NL;
  }

$cssstr .= "        }".NL;
 }

$cssstr .= '    </style>'.NL;

return $cssstr;
}

und im Formular dann

<h1>Reservierung</h1>

<p id="errmess"><?php if(isset($_out['error'])) {echo $_out['error'];} ?></p>
                                                ^

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<label for="name">Name: </label><input type="text" name="name" <?php echo $_out['name']; ?>>
<label for="phone">Telefonnummer: </label><input type="text" name="phone" <?php echo $_out['phone']; ?>>
<input type="submit" name="submit" value="Reservieren">
</form>

So funktioniert das schon ganz nett.

Du brauchst also nur noch eine Funktion zu schreiben, die die Fehler feststellt und die CSS-Elemente  entsprechend erzeugt bzw. überschreibt.

Und solange in $_out['error'] etwas drinsteht, wird einfach nicht gespeichert, sondern wieder vorgelegt. Du könntest per Session noch einen Zähler mitlaufen lassen, wie oft das der fall war, um Robot-Angriffe besser erkennen zu können. Kaum ein Mensch würde es wohl mehr als zwanzigmal versuchen.

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de