This is an old revision of the document!


Tips för att undvika notice (och lite annat)

Om du vill ha en större utmaning och få en bättre kod så försök att klara dig utan att använda
error_reporting(E_ALL ^E_NOTICE);

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

<?php
 
// Ha gärna logiken längst upp och utskrifterna längst ner.
 
// Skapar en tom sträng för meddelanden för att inte riskera att få 
// notice om att variabeln inte finns när meddelandet ska skrivas ut.
$message = '';  
 
// isset() kollar om $_POST['namn'] finns för att inte få
// felmeddelande och utskrift när sidan laddas första gången.
if (isset($_POST['namn'])) { 
 
    $ok = true;  // Variabeln håller reda på om något är fel.
 
    if(empty($_POST['namn'])){ // empty() kollar om inget är inmatat.
	$message = 'Du har inte angett namn.<br>';
	$ok = false;  // Nu har ett fel hittats.
    }
    if($_POST['namn'] == 'Daniel'){
	$message = 'Du får inte ange detta namn.<br>';
	$ok = false;  // Nu har ett fel hittats.
    }
 
    if ($ok == true){  // Utförs om inga fel hittats.
       $message = 'Namnet är ' . $_POST['namn'] . '<br>';
       if($_POST['namn'] == $_POST['namn2']){
         $message = $message.'SAMMA IGEN <br>';
       }
    }
 
} else {
 
  // $_POST['namn'] skapas om det inte finns för att undvika 
  // fel i formuläret där det används.
  $_POST['namn']='';  
}
 
include('head.php');
echo $message . '<br>'; // Skriver ut eventuellt meddelande eller tom sträng.
 
// Skickar med ett "gömt" värde i formuläret för att kunna jämföra
// med nästa inmatning som görs.
echo '
<form method="post">
    <input type="text" placeholder="Namn" name="namn"><br>
    <input type="hidden" name="namn2" value="' . $_POST['namn'] . '">
    <input type="submit" name="submit" value="Skicka">
</form>
';  // Hela formuläret ligger i en "php-rad".
 
include('foot.php');
?>