Mini-CMS – Opdatering af indhold
Hej allesammen
Dette er så min 4. video omkring Mini-CMS med prepared statements.
I denne video viser jeg hvordan du kan redigere dit indhold med prepared statements. Der skal bruges en html-formular og et php-script.
Kildekode:
Rediger_side.php
<div id="content">
<?php
$page_id = $_GET['page_id'];
if(isset($_SESSION['done'])) {
echo '<div class="status">'.$_SESSION['done'].'</div>';
unset($_SESSION['done']);
}
if(isset($_SESSION['fail'])) {
echo '<div class="status">'.$_SESSION['fail'].'</div>';
unset($_SESSION['fail']);
}
if($stmt=$mysqli->prepare('SELECT titel, tekst FROM content WHERE page_id=?')) {
$stmt->bind_param('i',$page_id);
//Send forespørgsel
$stmt->execute();
//Gem modtagne data
$stmt->bind_result($side_titel, $side_tekst);
$stmt->fetch();
//Lukker forbindelen
$stmt->close();
}
else {
echo 'Der opstået en fejl: '.$mysqli->error;
}
?>
<form name="opret_side" method="post" action="update.php">
Titel: <input type="text" name="titel" value="<?php echo $side_titel; ?>" /><br />
Tekst:<br />
<textarea name="tekst"><?php echo $side_tekst; ?></textarea><br />
<input type="hidden" value="<?php echo $page_id; ?>" name="page_id" />
<input type="submit" name="opret" value="Opret side" class="btn btn-primary" />
</form>
</div>
Update.php
session_start();
include '../inc/connect.inc.php';
if($stmt=$mysqli->prepare('UPDATE content SET titel=?, tekst=? WHERE page_id=?')) {
$stmt->bind_param('ssi', $titel, $tekst, $id);
$titel = $_POST['titel'];
$tekst = $_POST['tekst'];
$id = $_POST['page_id'];
$stmt->execute();
$stmt->close();
$status = 0;
}
else {
echo 'Der er opstået en fejl'.$mysqli->error;
}
if($status == 0) {
$_SESSION['done'] == "Side opdateret";
header ('Location: ../index.php');
}
else {
$_SESSION['fail'] = "Siden blev ikke opdateret".$mysqli->error;
header ('Location: ../index.php');
}

