Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dvprog15 [2020-01-09 13:38]
Daniel Viström
dvprog15 [2022-07-18 13:20]
Line 1: Line 1:
-====== Tips till gästboken: Undvika notice, hantera felmeddelanden, lägga in värden i formulär och lite annat ====== 
- 
-Här är ett exempel med några tips: 
- 
-<code php> 
-<?php 
-  
-// Ha gärna logiken längst upp och utskrifterna längst ner. 
-  
-// Skapar en tom array för felmeddelanden. 
-$errors = [];  
-  
-// 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'], $_POST['alder'])) { 
-  
-  $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'] == 'Daniel'){ 
-    $errors[] = 'Du får inte ange detta namn.'; // Lägger till ett felmeddelande. 
-    $ok = false;  // Nu har ett fel hittats. 
-  } 
-  
-  if(empty($_POST['alder'])){ // empty() kollar om inget är inmatat. 
-    $errors[] = 'Du har inte angett å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){  // Utförs om inga fel hittats. Samma som att skriva $ok == true 
-    $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. 
- 
-// Skriver ut felmeddelanden.  
-$i = 0; 
-while ($i < count($errors)){ 
-  echo '<div class="error">' . $errors[$i] . '</div>'; 
-  $i++; 
-} 
-/* 
-.error { 
-  border: black 1px solid; 
-  color: red; 
-  padding: 10px; 
-  margin: 10px 0px; 
-} 
-*/ 
-  
-// 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="text" placeholder="Ålder" name="alder"><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'; 
-?></code> 
- 
-Kolla upp [[http://www.php.net/manual/en/ref.strings.php|strängfunktionerna]] för att hantera html-taggar i saker som matas in i formulär.