5 Opdatér

Lad os sige vi har oprettet en bruger, og vil opdatere stamoplysninger (navn, adresse, alder osv). Her vil vi altså lave en side, som henter allerede indsatte oplysninger fra en tabel, og giver brugeren mulighed for at opdatere dem. Det vil sige, at vi må lave følgende operationer:

  • Lav en side som viser stamoplysninger i en form
  • Giv hvert formfield en value med brugerens stamoplysninger obs: den nemmeste måde at opbevare og få fat i brugerens stamoplysninger, er ved at gemme dem i $_SESSION arrayet. Gå ind på siden login.php og sørg for at alle nødvendige stamoplysninger gemmes (du får brug for: id, fornavn, efternavn, alder, køn, telefon, email, adresse)
  •  Lad formen submitte til siden selv – nu med en ekstra $_GET parameter, fx update = true
  • Lav en POST håndtering, der laver et UPDATE statement med de nye værdier fra formen
  • Oplys brugeren om at oplysningerne er opdateret

PHP eksempel: opdater bruger

Find siden welcome.php og udskift indholdet med nedenstående snippet. HUSK at gå ind i login.php og sørg for at alle nødvendige stamoplysninger gemmes i $_SESSION

<h1>Velkommen, <?php echo $_SESSION['fornavn']." ".$_SESSION['efternavn'];?></h1>
<p>Du er nu logget på. Du har rollerne: <?php echo $_SESSION['roller']?></p>
<a href = "logout.php">Log ud</a>
<hr/>
<h2>Din profil</h2>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
      // values sent from form       
    $escapedFornavn = mysqli_real_escape_string($conn, $_POST['fornavn']); 
    $escapedEfternavn = mysqli_real_escape_string($conn, $_POST['efternavn']); 
    $escapedAlder = mysqli_real_escape_string($conn, $_POST['alder']); 
    $escapedEmail = mysqli_real_escape_string($conn, $_POST['email']); 
    $escapedAdresse = mysqli_real_escape_string($conn, $_POST['adresse']); 
    $escapedTelefon = mysqli_real_escape_string($conn, $_POST['telefon']); 
    $escapedKoen = mysqli_real_escape_string($conn, $_POST['koen']); 
    if($escapedFornavn == "" || $escapedEfternavn == "" || $escapedEmail == "" || $escapedAdresse == "" || $escapedTelefon == "" || $escapedKoen == ""){
        $msg = "Udfyld venligst alle felterne";
    }else{          
        # Opdater profil 
        $query = "UPDATE Person SET fornavn = '$escapedFornavn', 
                efternavn = '$escapedEfternavn', 
                alder = '$escapedAlder', 
                email = '$escapedEmail', 
                adresse = '$escapedAdresse', 
                telefon = '$escapedTelefon', 
                køn = '$escapedKoen'
                WHERE id = ".$_SESSION['id'];
        if ($result = $conn->query($query)) {
                # så registrerer vi i den nuværende session, at brugeren er blevet opdateret
                $_SESSION['fornavn'] = $escapedFornavn;
                $_SESSION['efternavn'] = $escapedEfternavn;
                $_SESSION['alder'] = $escapedAlder;
                $_SESSION['email'] = $escapedEmail;
                $_SESSION['adresse'] = $escapedAdresse;
                $_SESSION['koen'] = $escapedKoen;
                $_SESSION['telefon'] = $escapedTelefon;
           echo "<h4>Profil opdateret</h4>";            
        # Eller hvis noget går galt, giv en fejl
        } else {
           $msg = "Fejl: " . $query . "<br>" . $conn->error;
        }         
   }
}
?>
    <form action="?welcome=true&update=true" method="post">
        <label>Fornavn:</label><input type="text" name="fornavn" required value = '<?php echo $_SESSION['fornavn'];?>'/><br/><br />
        <label>Efternavn:</label><input type="text" name="efternavn" required value = '<?php echo $_SESSION['efternavn'];?>'/><br/><br />
        <label>Alder:</label><input type="number" name="alder" required value = '<?php echo $_SESSION['alder'];?>'/><br/><br />
        <label>Email:</label><input type="email" name="email" required value = '<?php echo $_SESSION['email'];?>'/><br/><br />
        <label>Adresse:</label><textarea name="adresse" required><?php echo $_SESSION['adresse'];?></textarea><br/><br />
        <label>Telefon:</label><input type="number" name="telefon" value = '<?php echo $_SESSION['telefon'];?>'/><br /><br />
        <label>Køn:</label><input type="text" name="koen" placeholder="M/K" maxlength="1" size="2" value = '<?php echo $_SESSION['koen'];?>' /><br /><br />
        <input type="submit" value=" Submit " /><br />
    </form>

Leave a comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *