PHP Academy · Lektion

Formularvalidering

Validér brugerinput af hensyn til sikkerhed og korrekthed

Lektion 3 af 310 trin

Formularvalidering er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 3 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 3 lektioner i alt.

Validering og sikring af formularinput

Velkommen til næste lektion! I denne lektion lærer du, hvordan du validerer og sikrer brugerinput for at sørge for, at dine formularer er korrekte og beskyttet mod ondsindede angreb. Lad os komme i gang!

Formularvalidering — illustration 1

Hvorfor validere og sikre input?

Det er afgørende at validere og sikre formularinput for at:

  • Sikre nøjagtige og brugbare data.
  • Beskytte mod sikkerhedstrusler som SQL-injektion og XSS-angreb.

Vigtigt: Validér og sanér altid brugerinput, før du behandler eller gemmer det.

Validering af input

Brug PHP’s indbyggede funktioner til at validere almindelige input:

  • filter_var(): Validerer e-mailadresser, URL'er og heltal.
  • preg_match(): Validerer input ud fra regulære udtryk.

Eksempel: Validering af en e-mailadresse:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $email = $_POST["email"];
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
      echo "Valid email: $email";
    } else {
      echo "Invalid email address.";
    }
  }
?>

Sanering af input

Sanér input for at fjerne uønskede tegn eller skadelig kode. Eksempel:

Tip: Brug filter_var() med passende filtre til forskellige datatyper.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
    echo "Sanitized Name: $name";
  }
?>

Forebyggelse af cross-site scripting (XSS)

Escap specialtegn for at forhindre XSS-angreb. Brug:

  • htmlspecialchars(): Konverterer specialtegn til HTML-entiteter.

Eksempel:

Tip: Escap altid brugerinput, før du viser det i browseren.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $comment = htmlspecialchars($_POST["comment"]);
    echo "Comment: $comment";
  }
?>

Forebyggelse af SQL-injektion

SQL-injektion opstår, når skadelig kode indsættes i dine SQL-forespørgsler. Brug forberedte sætninger for at forhindre det. Eksempel:

Vigtigt: Brug altid forberedte sætninger til interaktioner med databaser.

<?php
  $pdo = new PDO("mysql:host=localhost;dbname=testdb", "root", "");
  $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
  $stmt->execute(["username" => $_POST["username"]]);
  $user = $stmt->fetch();
?>

Almindelige valideringsmønstre

Her er nogle almindelige mønstre:

  • Validering af et telefonnummer: preg_match('/^\d{10}$/', $phone)
  • Validering af en adgangskode: Kontrollér længde og kompleksitet.

Eksempel: Validering af en stærk adgangskode:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $password = $_POST["password"];
    if (strlen($password) >= 8 && preg_match('/[A-Z]/', $password)) {
      echo "Strong password!";
    } else {
      echo "Password must be at least 8 characters long and include an uppercase letter.";
    }
  }
?>

Sikring af filuploads

For formularer, der håndterer filuploads:

  • Kontrollér filtypen og størrelsen.
  • Gem filer i en sikker mappe uden for webroden.

Eksempel:

<?php
  if ($_FILES["file"]["size"] < 500000 && in_array($_FILES["file"]["type"], ["image/jpeg", "image/png"])) {
    move_uploaded_file($_FILES["file"]["tmp_name"], "/secure/location/" . $_FILES["file"]["name"]);
    echo "File uploaded successfully!";
  } else {
    echo "Invalid file.";
  }
?>

Godt klaret!

Tillykke! Du har lært, hvordan du validerer og sikrer formularinput for at sørge for, at dine webapplikationer er sikre og pålidelige. I næste lektion udforsker vi, hvordan du håndterer filuploads i PHP. Lad os fortsætte med at kode!

Formularvalidering — illustration 10
Gratis at komme i gang

Lær PHP med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
49
Lektioner
195

Ofte stillede spørgsmål

Er lektionen “Formularvalidering” gratis?

Ja — hele teksten til “Formularvalidering” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Formularvalidering”?

Validér brugerinput af hensyn til sikkerhed og korrekthed Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på PHP Academy?

Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 3.

Hvor lang tid tager lektionen “Formularvalidering”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne PHP Academy-lektion?

Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oprettelse af HTML-formularer
  2. Håndtering af formulardata med PHP
  3. Formularvalidering
← Tilbage til PHP Academy