#OPGAVE 8.A #Opretter tabellen CREATE TABLE comments ( id int PRIMARY KEY AUTO_INCREMENT, url varchar(200), insertdate TIMESTAMP, name varchar(100), email varchar(100), text text ) # indsætter data INSERT INTO comments ( url, name, email, text ) VALUES ( 'www.it-c.dk/people/ckj/index.php', 'Betty Bøllehat', 'betty@hat.dk', 'Det er den fedeste blå farve jeg nogensinde har set!' ) # finder kommentarer til en given url SELECT url, date_format(insertdate, '%m %e, %Y') AS date, name, email, text FROM comments WHERE url LIKE 'www.it-c.dk/people/ckj/index.php' # opdatere en kommentartext på en given kommentar UPDATE comments SET url = 'http://www.xoc.dk', name = 'Camilla', email = 'camilla@xoc.dk', text = 'I like' WHERE url = 'www.it-c.dk/people/ckj/index.php' # slette en given kommentar DELETE FROM comments WHERE url = 'http://www.xoc.dk' -------------------------------------------------------------------------------- OPGAVE 8.B LINK: http://www.it-c.dk/people/ckj/w2/oevelse8/comments_backup.php KILDEKODE: her kommer kildekoden (til comments_backup.php) comments kommer i næste opgave -------------------------------------------------------------------------------- include("../functions/functions.inc.php"); include("../functions/functions_db.inc.php"); writeXHTMLHeader("Opgave 8.B"); writeHeadline("Kommentarer"); /* Det er spild af tid at brugeren skal indtaste en url på den side han/hun vil kommentere. Man kan bruge $_SERVER['HTTP_REFERER'] til at finde ud af hvor brugeren kom fra - så slipper man også for at ereg-teste url'en da den jo må være gyldig. */ if ($_GET['url'] != "") { $referingURL = $_GET['url']; } else { $referingURL = $_SERVER['HTTP_REFERER']; } $strSQL = "# finder kommentarer til en given url SELECT id, url, date_format(insertdate, '%e/%m, %Y') AS date, name, email, text FROM comments WHERE url LIKE '$referingURL'"; //queryen sendes til functionen så resultatet kan bruges hvis brugeren kommer fra en gyldig side if (!$queryResult = SQL($strSQL)) { echo "
Der er sket en fejl ved kommunikationen med databasen
"; } else { /* Hvis brugeren indtaster adressen på kommentarsiden direkte i adressefeltet kommer der hverken get eller HTTP_REFERER-variabler med. Sider der har et link til kommentarservice sender HTTP_REFERER med, med så selvom der ikke er nogen kommentarer i databasen endnu kan serviden godt bruges. Sider uden dette magiske link er ikke "tilmeldt". */ if ($_GET['url'] == "" && $_SERVER['HTTP_REFERER'] == "") { echo "Du er kommet til denne side fra en side der ikke er tilmeldt kommentarservice.
"; echo "Kontakt adminstratoren på ckj@it-c.dk for et tilbud på kommentarservice. Priserne starter ved 100000\n"; } else if (mysql_num_rows($queryResult) > 0) { //der er kommentarer til url'en i databasen echo "Velkommen til kommentarservice for $referingURL.
"; echo "Der er endnu ikke nogen kommentarer til siden men du kan jo være den første.
"; } } writeHTMLFooter(); ?> -------------------------------------------------------------------------------- OPGAVE 8.C.1 LINK: http://www.it-c.dk/people/ckj/w2/oevelse8/comments.php KILDEKODE: her kommer kildekoden -------------------------------------------------------------------------------- include("../functions/functions.inc.php"); include("../functions/functions_db.inc.php"); writeXHTMLHeader("Opgave 8.C.1"); writeHeadline("Kommentarer"); /* Det er spild af tid at brugeren skal indtaste en url på den side han/hun vil kommentere. Man kan bruge $_SERVER['HTTP_REFERER'] til at finde ud af hvor brugeren kom fra - så slipper man også for at ereg-teste url'en da den jo må være gyldig. */ if ($_GET['url'] != "") { $referingURL = $_GET['url']; } else { $referingURL = $_SERVER['HTTP_REFERER']; } $strSQL = "# finder kommentarer til en given url SELECT id, url, date_format(insertdate, '%e/%m, %Y') AS date, name, email, text FROM comments WHERE url LIKE '$referingURL'"; //queryen sendes til functionen så resultatet kan bruges hvis brugeren kommer fra en gyldig side if (!$queryResult = SQL($strSQL)) { echo "Der er sket en fejl ved kommunikationen med databasen
"; } else { /* Hvis brugeren indtaster adressen på kommentarsiden direkte i adressefeltet kommer der hverken get eller HTTP_REFERER-variabler med. Sider der har et link til kommentarservice sender HTTP_REFERER med, med så selvom der ikke er nogen kommentarer i databasen endnu kan serviden godt bruges. Sider uden dette magiske link er ikke "tilmeldt". */ if ($_GET['url'] == "" && $_SERVER['HTTP_REFERER'] == "") { echo "Du er kommet til denne side fra en side der ikke er tilmeldt kommentarservice.
"; echo "Kontakt adminstratoren på ckj@it-c.dk for et tilbud på kommentarservice. Priserne starter ved 100000\n"; } else if (mysql_num_rows($queryResult) > 0) { //der er kommentarer til url'en i databasen echo "Velkommen til kommentarservice for $referingURL.
"; echo "Der er endnu ikke nogen kommentarer til siden men du kan jo være den første.
"; } } ?>Tilføj en kommentar:
writeHTMLFooter(); ?> -------------------------------------------------------------------------------- OPGAVE 8.C.2 LINK: http://www.it-c.dk/people/ckj/w2/oevelse8/comments_add.php KILDEKODE: her kommer kildekoden --------------------------------------------------------------------------------- include("../functions/functions.inc.php"); include("../functions/functions_db.inc.php"); //henter de postede variabler ind $theURL = $_POST['url']; $theName = $_POST['name']; $theEmail = $_POST['email']; $theText = $_POST['text']; //ereg-tjek på e-mailadressen.. Det er stadig for åndsvagt at tjekke url if ($theEmail != "") { $mailResult = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $theEmail); if ($mailResult) { $mailTjek = "OK"; } } if ($theName != "" && $theText != "" && $mailTjek == "OK") { $strSQL = "# indsætter data INSERT INTO comments ( url, name, email, text ) VALUES ( '$theURL', '$theName', '$theEmail', '$theText' )"; //hvis noget gik galt if (!SQL($strSQL)) { writeXHTMLHeader("Opgave 8"); writeHeadline("Fejl i kommentaren"); echo "Der skete en fejl ved indsættelsen af kommentaren i databasen. Klik på tilbage i browseren og prøv igen"; writeHTMLFooter(); } else { echo header("Location: http://it-c.dk/people/ckj/w2/oevelse8/comments.php?url=$theURL"); exit; } } else { writeXHTMLHeader("Opgave 8.C.2"); writeHeadline("Fejl i kommentaren"); echo "Du mangler at indtaste en del af formularen. Tryk her for at komme tilbage."; writeHTMLFooter(); } ?> -------------------------------------------------------------------------------- OPGAVE 8.D.1 LINK: http://www.it-c.dk/people/ckj/w2/oevelse8/delete_form.php KILDEKODE: her kommer kildekoden -------------------------------------------------------------------------------- include("../functions/functions.inc.php"); writeXHTMLHeader("Opgave 8.D.1"); writeHeadLine("Slet kommentar"); if ($_GET['id'] && $_GET['url']) {//jeg tester variabler der må være ok medmindre brugeren ikke kommer fra delete_form og har variabler med til mig ?>
} else { echo "Du er kommet hertil fra en side der ikke medsender data. Tryk på tilbage-linket nederst på siden for at komme til forsiden"; } writeHTMLFooter(); ?> -------------------------------------------------------------------------------- OPGAVE 8.D.2 LINK: http://www.it-c.dk/people/ckj/w2/oevelse8/delete.php KILDEKODE: her kommer kildekoden -------------------------------------------------------------------------------- include("../functions/functions.inc.php"); include("../functions/functions_db.inc.php"); $theID = $_GET['id']; $theURL = $_GET['url']; if ($_GET['password'] == "haj") { $strSQL = " # slette en given kommentar DELETE FROM comments WHERE id = '$theID'"; if (!SQL($strSQL)) { writeXHTMLHeader("Opgave 8"); writeHeadLine("Slet kommentar"); echo "\n Fejl ved indsættelse af data. \n
\n"; } else { header("Location: http://it-c.dk/people/ckj/w2/oevelse8/comments.php?url=$theURL"); exit; } } else { writeXHTMLHeader("Opgave 8.D.2"); writeHeadLine("Slet kommentar"); echo "\n Adgang nægtet! Din computer springer i luften om 10 sekunder....\n
"; } writeHTMLFooter(); ?> --------------------------------------------------------------------------------