Tager vi udgangspunkt i at du vil bruge en MySQL database, så har jeg netop lavet et kommentarsystem i forbindelse med et eksamensprojekt, og jeg vil da gerne dele min kode med dig.
Her hentes kommentarer, samt redigeringslink og slet-funktion:
- //kategori titel hentes fra indhold og gemmes i seperat variabel, samt navn hentes og gemmes
- $kategori = $indhold['titel'];
- //Kommentar formular oprettes hvis login er ok
- if (isset($_SESSION['username'])) {
- $navn = $_SESSION['name'];
- echo '<form name="kommentar" action="admin/comment.php" method="post">
- <textarea name="tekst" id="tekst" placeholder="Din kommentar her..." class="input-placeholder" cols="30" rows="10"></textarea>
- <input type="hidden" name="navn" value="'.$navn.'" />
- <input type="hidden" name="kategori" value="'.$kategori.'" /><br />
- <input type="submit" name="gem" value="Send kommentar" />
- </form>';
- }
- else {
- echo ' ';
- }
- //Kommentarer vises
- $sql_kommentar = "SELECT id, navn, kommentar FROM kommentarer WHERE kategori='$kategori'";
- $query_kommentar = mysql_query($sql_kommentar) or die(mysql_error());
- while ($kommentar = mysql_fetch_assoc($query_kommentar)) {
-
- echo '<h4>' . $kommentar['navn'] . '</h4>' .
- '<p>' . $kommentar['kommentar'] . '</p>';
-
- if
- ( //Muliggør redigering/slet af kommentar
- (isset($_SESSION['name']) && $_SESSION['name'] == $kommentar['navn'])
- ||
- (isset($_SESSION['gruppe']) && $_SESSION['gruppe'] == "admin")
- )
- {
- echo '<a href="admin/rediger_kommentar.php?id=' . $kommentar['id'] . '">Rediger kommentar</a><br />';
- echo '<a href="admin/delete_comment.php?id=' . $kommentar['id'] . '">Slet kommentar</a>';
- }
- }
redigeringsfunktionen ser således ud
admin/rediger_kommentar.php:
- <?php
- include '../inc/connect.php';
- $id = $_GET['id'];
-
- $sql_indhold = "SELECT * FROM kommentarer WHERE id='$id'";
-
- $query_indhold = mysql_query($sql_indhold);
-
- $indhold = mysql_fetch_assoc($query_indhold);
- ?>
-
- <form action="update_comment.php" method="post" name="opret">
- <p>Indhold:<br />
- <textarea name="tekst"><?php echo $indhold['kommentar']?></textarea></p>
- <input type="hidden" name="id" value="<?php echo $id;?>" />
- <input type="hidden" name="navn" value="<?php echo $indhold['navn']; ?>" />
- <input name="submit" type="submit" value="Gem" />
- <input type="button" name="tilbage" value="Tilbage" onClick="windows.location.href='../mode.php'" />
- </form>
admin/update_comment.php:
- session_start();
- //Tjekker brugerrettigheder
- if(isset($_SESSION['username']) or $_SESSION['gruppe'] == "admin" ? true : header("Location: ../index.php?msg=ACCESS_DENIED"));
- include '../inc/connect.php';
- $data = mysql_query("SELECT * FROM kommentarer" ) or die(mysql_error());
-
- //Husk at sikrer dine ting imod SQL Injections
- $navn = mysql_real_escape_string($_POST['navn']);
- $tekst = mysql_real_escape_string($_POST['tekst']);
- $id = mysql_real_escape_string($_POST['id']);
-
- // Indsæt i tabel
-
- if (isset($_POST['submit'])) {
- $tabeldata = "UPDATE kommentarer SET navn = '$navn',kommentar = '$tekst' WHERE id = '$id'";
- $resultat = mysql_query($tabeldata);
- if($resultat) {
- header ('Location: ../index.php?msg=SUCCES');
- }
- else {
- header ('Location: ../index.php?msg=FAILED');
- }
- }
- else {
- header('Location: ../index.php?msg=ACCESS_DENIED');
-
- }
- mysql_close();
admin/delete_comment.php:
- session_start();
- include '../inc/connect.php';
-
- $id = $_GET['id'];
-
- $sql_slet = mysql_query("SELECT id FROM kommentarer WHERE id='$id'");
-
- //Tjekker om der er indhold i valgte tabel
- if(mysql_num_rows($sql_slet) > 0) {
-
- $delete = mysql_query("DELETE FROM kommentarer WHERE id='$id'");
- header('Location: ../index.php?msg=DATA_SLETTET');
- } else {
-
- header('Location: ../index.php?msg=INGEN_DATA');
-
- }
../inc/connect.php:
- $server = "serveradresse";
- $brugernavn = "brugernavn";
- $kode = "sql-adgangskode";
- $db = "database";
-
- mysql_connect($server , $brugernavn , $kode) or die(mysql_error());
- mysql_select_db($db)or die(mysql_error());
- //Aktiverer understøttelse af ÆØÅ
- mysql_set_charset('utf8');
Systemet viser kun redigeringslink og slet-funktion for den bruger der har oprettet dette, samt for administratorer.
Du skal lige have loginscriptet, så du kan se hvordan den laver grupperne admin og user:
../inc/auth.php:
- session_start();
-
- include 'connect.php';
-
- //Husk at sikrer dine ting imod SQL Injections
- $username = mysql_real_escape_string($_POST['username']);
- $password = mysql_real_escape_string($_POST['password']);
-
- //Lav en query der henter den ønskede bruger i stedet for alle sammen
- $data = mysql_query("SELECT * FROM login WHERE username = '" . $username . "' AND password = '" . md5($password) . "'") or die(mysql_error());
-
- if ($info = mysql_fetch_array($data))
- {
- //Hvis brugeren findes bliver de logget ind
- $_SESSION['loggedin'] = 1;
- $_SESSION['username'] = $info['username'];
-
- //gem brugerens rigtige navn
- $_SESSION['name'] = $info['name'];
-
- //Henter brugergruppe
- $_SESSION['gruppe'] = $info['gruppe'];
-
-
- //redirect til index uden fejl
- $succes = $info['username'] . ' blev logget ind uden problemer';
- header('Location: ../index.php?msg=' . $succes);
- }
- else
- {
- //Redirect til index med fejl besked.
- $error = 'Der blev ikke fundet noget match på brugernavn og kodeord';
- header('Location: ../index.php?msg=' . $error);
- }
Indlæg senest redigeret d. 21.05.2012 08:12 af Bruger #17072