Syntax fejl med nyhedssystem
Godaften folkens,Har kopieret et nyhedssystem fra Rowl.dk for at afprøve PHP-mulighederne. Men jeg får desværre et par syntax fejl, når jeg forsøger at tilføje en nyhed.
config.php
<?php
mysql_connect("localhost", "root", "") or die(mysql_error()); // Udfylde inputsne med egen data
mysql_select_db("mysql") or die(mysql_error()); // Og det samme gør du her
?>
vis.nyheder.php
<?php
// Vi inkluderer vores config fil, som holder forbindelsen til vores database
include ("config.php");
// Hent al data fra tabellen "news" sortér af ID nyest
$loadNews = mysql_query("SELECT * FROM news ORDER BY id DESC") or die(mysql_error());
// Men vi skal da lige tjekke, om der overhovedet er oprettet nogle nyheder i vores databse! Det gør vi med mysql_num_rows();
// Vi tæller simpelthen hvor mange data der er indsat, hvis der er 0 data udskriver vi en meddelse
if(mysql_num_rows($loadNews) == 0) {
echo "Der er ikke blevet tilføjet nogle nyheder.";
// Hvis der er mere end 0 nyheder oprettet et databasen udskriver vi dem alle
} else {
// Ved hjælp af en while() også kaldt "løkke", udskriver vi nyhederne
while($showNews = mysql_fetch_array($loadNews)) {
$nName = stripslashes($showNews["name"]); // Vi opretter en variable for overskriften. stripslashes(); fjerner "/" fra selve overskriften hvis dette skulle være tilfældet
$nAuthor = stripslashes($showNews["author"]); // Vi opretter endnu en variable for forfatteren, og bruger stripslashes();
$nText = nl2br(stripslashes($showNews["text"])); // En til variable! Denne gang for selve nyheden. nl2br(); er en funktion der bruges som linjeskift ved ENTER, istedet for man skal bruge <br /> for hver linjeskift, ret smart ikk"?
$nDate = $showNews["date"]; // Og til sidst en variable for datoen!
echo "<b>".$nName."</b><br />"; // Udskriv overskriften med "fed"
echo "<i>Skrevet af ".$nAuthor.", d. ".$nDate."</i><br />"; // Udskriv forfatter og date med "kursiv"
echo "".$nText.""; // Udskriv selve nyheden
echo "<br /><br />"; // Laver plads til næste nyhed
} // Lukker vores while()
} // Lukker vores if();
// Et link som fører til tilfoj.nyhed.php, hvor der kan oprettes nyheder
echo "<a href=\"tilfoj.nyhed.php\" title=\"Tilføj nyhed\">Tilføj nyhed</a>";
?>
tilfoj.nyhed.php
<?php
// Vi inkluderer vores config fil, som holder forbindelsen til vores database
include ("config.php"); // Vi laver en variable ud af vores "action". Det gør det hele meget lettere
$action = $_GET["action"]; // Hvis "action" er lig med "submitNews", gør vi klar til at indsætte selve nyheden
if($action == "submitNews") {
$cName = htmlspecialchars(addslashes($_POST["newsName"])); // Vi opretter en variable for overskriften. htmlspecialchars(); gør så der ikke kan bruges HTML i overskrift. addslashes(); sætter / ved " og ", hvis det er tilfældet
$cAuthor = htmlspecialchars(addslashes($_POST["newsAuthor"])); // Vi gør de samme ved forfatter, ligesom vi gjorde ved overskriften
$cText = htmlspecialchars(addslashes($_POST["newsText"])); // Og endnu en gang ved selve nyheden
$cDate = date("d-m/Y"); // Skaffer den nuværende dato og laver en variable af den
// Her bruger vi empty() til at tjekke om et felt er tomt. Læg mærke til at jeg har sat "!" foran. Så nu er det omvendt! Den spørger: "Hvis overskrift, forfatter og text er udfyldt, så indsætter vi i databasen"
if(!empty($cName) && !empty($cAuthor) && !empty($cText)) { // Simpel mysql_query(); hvor vi indsætter nyheden i databasen
mysql_query("INSERT INTO news (name, author, date, text)VALUES("".$cName."", "".$cAuthor."", "".$cDate."", "".$cText."")") or die(mysql_error()); // Jubii! Det lykkedes os at oprette en nyhed. Vi udskriver en besked
echo "<span style="color: green; font-weight: bold;">Nyheden "".$cName."" er blevet tilføjet!</span>";
// Hvis overskrift, forfatter og selve nyheden var tomme udskriver vi en meddelse
} else {
echo "Du skal udfylde alle felter!";
} // Lukker vores if();
// Hvis "action" ikke var lig med "submitNews" udskriver vi html-formularen til at oprettelsen af en nyhed
} else {
// Simpel html-formular som jeg ikke vil bruge tid på at forklare
echo "<form action="?action=submitNews" method="POST">";
echo "<b>Overskrift:</b><br />";
echo "<input type="text" name="newsName"><br />";
echo "<b>Forfatter:</b><br />";
echo "<input type="text" name="newsAuthor"><br />";
echo "<b>Overskrift:</b><br />";
echo "<textarea name="newsText" style="width: 400px; height: 120px;">