Tips för kontroll av inmatningar

Här är ett exempel med några tips:

<?php
 
<?php
 
// Ha gärna logiken längst upp och utskrifterna längst ner.
 
// Lagra alla felmeddelanden i en array.
$errors = array(); // Skapa en tom array.  
$message = '';
 
 
// isset() kollar om $_POST['submit'] finns för att inte få
// felmeddelande och utskrift när sidan laddas första gången.
if (isset($_POST['submit'])) { 
 
    $ok = true;  // Variabeln håller reda på om något är fel.
 
    if(empty($_POST['namn'])){ // empty() kollar om inget är inmatat.
      $errors[] = 'Du har inte angett namn.'; // Lägger till ett felmeddelande
      $ok = false;  // Nu har ett fel hittats.
    }
    if($_POST['namn'] == 'Anders'){
      $errors[] = 'Du får inte ange detta namn.';
      $ok = false;  // Nu har ett fel hittats.
    }
 
    if(empty($_POST['alder'])){ // empty() kollar om inget är inmatat.
      $errors[] = 'Du har inte angett en ålder.'; // Lägger till ett felmeddelande
      $ok = false;  // Nu har ett fel hittats.
    }else {
      if(!is_numeric($_POST['alder'])){ // kollar om inmatningen INTE består av siffror.
        $errors[] = 'Angiven ålder måste bestå av siffror.'; // Lägger till ett felmeddelande
        $ok = false;  // Nu har ett fel hittats.
      }
    }
 
    if ($ok == true){  // Utförs om inga fel hittats.
       $message = 'Namnet är ' . $_POST['namn'] . '<br>';
    }
 
} else {
 
  // $_POST['namn'] skapas om det inte finns för att undvika 
  // fel i formuläret där det används.
  $_POST['namn']=''; 
  $_POST['alder']=''; 
 
}
 
 
 
 
include('head.php');
// Skriv ut felmeddelanden
$i = 0;
while ($i < count($errors)){
  echo '<div class="error">' . $errors[$i] . '</div>';
  $i++;
}
 
 
 
 
 
 
echo '
<form method="post">
	<input type="text" placeholder="Namn" name="namn" value="'.$_POST['namn'].'"><br>
  <input type="text" placeholder="Ålder" name="alder" value="'.$_POST['alder'].'"><br>
    <input type="submit" name="submit" value="Skicka">
</form>
';  // Hela formuläret ligger i en "php-rad".
 
include('foot.php');
?>