The Design Diaries Project 3 2. Semester Blog om designprincipper
By Lif Neergaard www.lifmediadesign.dk cph-ln175@cphbusiness.dk Mathias Larsen www.nefjam.dk cph-ml414@cphbusiness.dk Ida Christensen www.idamedia.dk cph-ic42@cphbusiness.dk Opgaveformulering: MUL A Vi skal skabe en blog online, hvor alle og enhver kan oprette et indlæg. Vi i gruppen skal lave 3 indlæg hver, hvor i vi har valgt at skrive om nogle af de 20 designprincipper. Hvert indlæg skal indeholde et billede. Websitet hvor bloggen er skal være responsiv og skrevet i PHP7, derudover skal vi også lave en database, en Use Case og en Use Case beskrivelse. Lærende skal kunne give feedback ved, at oprette deres eget indlæg på bloggen.
Attribute table: Attribute Table Entity Relation Attributes Value Notes Datatype Length blog Id Auto Primary Key, auto generated uniqe number Integer ~ headline allchar Headline of article VarChar 50 (Javascript validation minimum 5 characters) text allchar The text for the article text 1000 (Javascript validation requried) author allchar name or nickname of the VarChar 50 author to the article (Javascript validation minimum 2 characters) image allchar Image regarding article (optional) VarChar 255
Use case:
Use Case beskrivelse: Use Case ID 4 Use Case Name Slet indlæg Actor Bruger Description Kunne slette det indlæg man selv har opretter og andres. Man trykker på knappen "slet", hvor efter der kommer en alertboks op hvor der står "om man er sikker på om man vil slette - ok eller annuller" Preconditions At der er nogen opslag på bloggen (Ellers er der ingen at slette) og at man trykker "ok" ved alertboksen Postconditions At indlægget bliver slettet på bloggen samt i databasen eller man har trykket annuller Basic Course 1. Tryk på "Admin" 2. Find indlæg man vil slette el. skriv indlæg 3. Tryk på knappen "slet" 4. Alert-boks kommer op 5. Tryk "OK" 6. Indlægget bliver slettet Alternate 1. Tryk på "Admin" Course 2. Find oplag man vil slette 3. Tryk på knappen "slet" 4. Alert-boks kommer op 5. Tryk "Annuller" 6. Indlægget bliver ikke slettet
PHP7 kode: Index.php: <?php // forbindelsesobjekt $connection = new MySQLi (HOSTNAME, MYSQLUSER, MYSQLPASS, MYSQLDB); // set_charset() metoden for at sikre at usædvanlige tegn kommer med under transfer-processen $connection->set_charset("utf8"); // virker det eller ej if($connection->connect_error){ die($connection->connect_error); // læse fra databasen // formuler et SQL query $data = $connection->query("select * FROM posts"); // få resultatet tilbage som array // Udfgiv flere database records med en "while" loop //"så længe du er i stand til at få en array ud af databasen" while ($sqlresult = $data->fetch_array()){ // En HTML table-række med 4 felter indeni
echo '<div class="infobox1">'; echo '<h3>'. $sqlresult['headline']. '</h3>'; echo '<p class="info">'. $sqlresult['text']. '</p>'; // inserting an image if present! echo '<td>'; if($sqlresult['image']){ echo '<img src="'.$sqlresult['image']. '" alt="'. $sqlresult['headline']. '">'; echo '</td>'; echo '<p>indlæg af: '. $sqlresult['author']. '</p>'; echo '</div>';?> Admin.php: <?php //tjek om POST-array findes + at knappen er blevet aktiveret if(isset($_post['opretemne'])){ // forbindelsesobjekt $connection = new MySQLi (HOSTNAME, MYSQLUSER, MYSQLPASS, MYSQLDB); // set_charset() metoden for at sikre at usædvanlige tegn kommer med under transfer-processen $connection->set_charset("utf8"); // virker det eller ej if($connection->connect_error){ die($connection->connect_error); //Få fat i POST array data
// Sikring mod SQL injection $headline = mysqli_real_escape_string($connection,$_post['headline']); $text = mysqli_real_escape_string($connection,$_post['text']); $author = mysqli_real_escape_string($connection,$_post['author']); ///////////////////////// ///// Image upload ///// ///////////////////////// $uploadok = 0; // Billedet er ikke opbligatorisk! betyder NOT, så der står IF FILE NOT EMPTY, ADD FILES if(!empty($_files['filetoupload']['name'])) { $target_dir = "images/"; //specifies the directory where the file is going to be placed $target_file = $target_dir. basename($_files['filetoupload']['name']); //specifies the path of the file to be uploaded $uploadok = 1; move_uploaded_file($_files['filetoupload']['tmp_name'], $target_file); //tmp_name contains the actual copy of your file content on the server /////////// END image upload //////////// if($uploadok == 1){ $sql = "INSERT INTO posts (headline, text, author, image) VALUES ('$headline', '$text', '$author', '$target_file')"; else { $sql = "INSERT INTO posts (headline, text, author) VALUES ('$headline', '$text', '$author')";
if(mysqli_query($connection, $sql)){ echo "<p style='color:green; font-size:18px; text-align:center; padding-bottom:15px;'>nyt indlæg er oprettet</p>"; else{ echo "<p style='color:red; font-size:18px; text-align:center; padding-bottom:15px;'>noget gik galt</p>"; // Forbindelsen lukkes igen: mysqli_close($connection); // end if condition?> Edit.php: <?php //Finder de eksisterende værdier frem fra databasen if(isset($_get['id'])){ $id = $_GET['id']; $headline = ""; $text = ""; $author =""; // Opdatere databasen med nye værdier if(isset($_post['submit'])) { //Få fat i POST array data // Sikring mod SQL injection $headline = mysqli_real_escape_string($connection,$_post['headline']); $text = mysqli_real_escape_string($connection,$_post['text']);
$author = mysqli_real_escape_string($connection,$_post['author']); = '$author' WHERE id = '$id'"; mysqli_query($connection, $sql); echo "<p style='color:green; font-size:18px; text-align:center; paddingbottom:15px;'>indlægget er rettet</p>"; $sql = "UPDATE posts SET headline = '$headline', text = '$text', author else { // Hvis intet er ændret så behold eksisterende værdier $sql = "SELECT * FROM posts WHERE id=$id"; $result = mysqli_query($connection, $sql); $row = mysqli_fetch_array($result); $headline = $row['headline']; $text = $row['text']; $author = $row['author']; // Forbindelsen lukkes igen: mysqli_close($connection);?> <!--Hvis man bruge echo i value så kan man se det der i forvejen står i databasen--> <form class="wrap" method="post" enctype="multipart/form-data"> Overskrift:<br> <input class="input" type="text" name="headline" value="<?php echo $headline?>" /><br> Tekst:<br> <textarea class="textarea" name="text"><?php echo $text?></textarea><br> Indlæg af:<br> <input class="input" type="text" name="author" value="<?php echo $author?>" /><br> <input id="button" type="submit" value="rediger" name="submit" />
</form> Slet.php: <?php require_once("db_connect.php"); // forbindelsesobjekt $connection = new MySQLi (HOSTNAME, MYSQLUSER, MYSQLPASS, MYSQLDB); // set_charset() metoden for at sikre at usædvanlige tegn kommer med under transfer-processen $connection->set_charset("utf8"); // virker det eller ej if($connection->connect_error){ die($connection->connect_error); // Sletter fra databasen med matchende ID og sender brugeren tilbage til admin siden. (Brugeren kommer aldrig til at se denne side) $id = $_GET['id']; $sql = "DELETE FROM posts WHERE id=$id"; $result = mysqli_query($connection, $sql);?> header("location: admin.php");exit;