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'); }