Hele Simpele CMS

Status
Niet open voor verdere reacties.

mattie94

Gebruiker
Lid geworden
30 aug 2011
Berichten
80
Voor een klein opdrachtje op school moet ik een simpele CMS maken
Dit moet gemaakt worden in PHP.
Het formuliertje bestaat maar uit 3 invoer vakken:
Naam - Onderwerp - Tekst
Uiteindelijk moet alles worden weergeven worden op een pagina waar alle berichten onder elkaar komen te staan
Je moet berichten kunnen wijzigen en verwijderen. Er komt dus gewoon een PHP My Admin database achter. het database deel is verder geen probleem

Ik ben vooral bezig met C# en daarom is mijn kennis van PHP minimaal.
Volgens mij is dit allemaal niet zo moeilijk, maar ik zoek een simpel voorbeeld wat een beetje overheen komt wat hier boven staat beschreven.
Volgens mij is het niet zoveel werk, maar alle voorbeelden die ik op internet vind zijn veelste uitgebreid

Wie kan me helpen?
 
Ik weet niet hoe ik je PHP kennis in moet schatten maar ik zal een poging wagen ;)

Te beginnen met het HTML formuliertje. Deze begin je met:
HTML:
<form action="verwerkpagina.php" method="post">
Ik weet niet of je bekend met met het verschil tussen post en get maar daarvoor verwijs ik je naar een simpele google search :), hoe dan ook lijkt post me hier het beste.
Vervolgens moet je de formulierelementen toe gaan voegen. Dit worden waarschijnlijk twee text-fields, een textarea en een verzend knop. Het zou er bijvoorbeeld zo uit kunnen zien:
HTML:
<input type="text" name="naam" />
<input type="text" name="onderwerp" />
<textarea name="tekst"></textarea>
<input type="submit" name="opslaan" value="Opslaan" />
Het is hierbij belangrijk dat je ze allemaal een naam meegeeft omdat we daarmee de waarden kunnen ophalen in PHP.

Daarna moet er een verwerkingspagina komen (dit kan in principe dezelfde pagina zijn maar ik zou voor het gemak er maar even een nieuwe voor aanmaken). Hier gaat de PHP plaatsvinden. Ten eerste is belangrijk dat alle code binnen de volgende if clausule komt zodat de pagina alleen de data gaat verwerken al er ook daadwerkelijk op de Opslaan-knop is gedrukt en niet als je de URL ervan intypt.
PHP:
<?php
if (isset($_POST['opslaan'])
{
     //Alle code
}
?>
Daarna kunnen we alle ingevoerde data ophalen. Dat komt er zo uit te zien:
PHP:
$naam = $_POST['naam'];
$onderwerp = $_POST['onderwerp'];
$tekst = $_POST['tekst'];
Nu kun je de data in de database zetten met een query. Zoiets als dit:
PHP:
$query = "INSERT INTO tabelnaam (naam, onderwerp, tekst) VALUES ('".$naam."','".$onderwerp."','".$tekst."')";
mysql_query("$query");
Let hierbij goed op de aanhalingstekens! Als je de data bijvoorbeeld ook wilt weergeven kan dit door echo te gebruiken:
PHP:
echo "<p>".$naam."</p>";
echo "<p>".$onderwerp."</p>";
echo "<p>".$tekst."</p>";
Aangezien je zei dat het database gedeelte geen probleem was ga ik er maar vanuit dat het connecten met je database al gelukt is, maar anders zijn hier ook duidelijke tutorials over te vinden. Ik ga maar niet je hele schoolopdracht maken maar hoop je zo toch geholpen te hebben ;). Hier staat eigenlijk merendeel van wat je moet weten: http://www.siteground.com/tutorials/php-mysql/display_table_data.htm. Mocht je nog tegen problemen aanlopen kan ik natuurlijk altijd helpen.

Succes!

PS: Ik heb alle code even uit mijn hoofd gedaan dus misschien staan er kleine foutjes in.
 
Remq,

Je hebt een aantal veiligheids problemen erin zitten, hierdoor kan een tekst niet altijd correct worden opgeslagen

als in de post een ' zit dan gaat deze gelijk al fout. Dit heeft te maken met sql injectie. Je veranderd de tekst ook niet bij het tonen, dit kan je doen met htmlentities. Dit zou ik zeer zeker doen voor XSS, ook al ben jij alleen de gene die bij het beheer systeem kan, je weet nooit of iemand probeerd in te loggen en het ook daad werkelijk lukt.


Daarnaast zou ik in plaats van mysql, PDO of mysqli gebruiken. Hierin kun je prepare querys maken, het voordeel hiervan is dat je gelijk sql injectie of went.

Als laatste zou ik adviseren om dit te wijzigen:
PHP:
<?php
if (isset($_POST['opslaan'])
{
     //Alle code
}
?>

naar

PHP:
<?php
if ($_POST['opslaan'] == 'opslaan' && $_SERVER['REQUEST_METHOD'] === 'POST)
{
     // hierin je querys voor het verwerken van opslaan/bewerken.
}
?>
 
Klopt, mijn voorbeeld is zeer gevoelig voor SQL injecties, maar op deze manier wordt het meestal in het begin aan geleerd omdat het nog voor weinig PHP kennis makkelijk te begrijpen is. Toen ik informatica op school had werd van mijn ook ongeveer het niveau verwacht van wat ik zei. Ik raad het je inderdaad af om mijn methode voor professionele doeleinden te gebruiken ;). Maar het is zeker goed dat het even genoemd wordt.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan