//------------------------//
// DATABASE CONFIGURATIE //
//------------------------//
$mysql_user = "trajecnet_beheer"; // je mysql login naam
$mysql_pass = "UrmasSisask12"; // je mysql wachtwoord
$mysql_host = "localhost"; // de host van je mysql database (localhost is meestal wel oke)
$mysql_dbn = "trajecnet_nagalm"; // de naam van je database
/*
Hier maakt hij een database connectie
Hij selecteert de database $mysql_dbn
Deze heb je hierboven aangegeven.
Vervolgens gebruikt hij als tweede argument,
Dit is dus na de komma, de verbinding met de
database.
Hiervoor worden $mysql_host, $mysql_user en $mysql_pass
gebruikt. Ook deze heb je hierboven bij de database
configuratie aangegeven.
De @ voor de functie mysql_select_db() en mysql_connect(),
staat voor het verbergen van eventuele foutmeldingen
die hij geeft. Dit is gedaan zodat je een eigen foutmelding
kan creeren wanneer de database connectie mislukt is.
De regel hieronder betekent dus:
Als er GEEN verbinding kan worden gemaakt, doe dan:
*/
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
//--- De verbinding is nu dus mislukt, geef hier een melding van
echo "database connectie mislukt!";
//--- Zorg ervoor dat het script stopt.
exit();
}
/*
De verbinding is nu dus wel gelukt. Nu kijken we
of het formulier verstuurd is d.m.v. de POST methode.
Als dit het geval is, dan is het formulier ingevuld en opgestuurd.
POST = via de server verstuurd.
GET = via het URL adres verstuurd (bijv.: index.php?naam=Bas)
Kijk ook of de velden naam, email en bericht zijn ingevuld.
Dit doe je door te kijken of ze niet leeg zijn dus: !empty($_POST['veld_naam'])
Kijk voor de zekerheid ook of er een apenstaartje (@) zit in het
e-mail adres. Dit is niet super veilig maar voldoet voor nu. Dit
gebeurt d.m.v. de functie strstr() (zie: www.php.net/strstr)
*/
if ($_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['naam']) && !empty($_POST['woonplaats']) && !empty($_POST['bericht']))
{
//--- De datum staat als DATETIME gedefineerd in de database
//--- Dit is dan het juiste 'formaat', bijv: 2006-11-27 12:03:53
$datum = date('Y-m-d H:i:s');
//controleer of het onzichtbare veld nog leeg is
if (!empty($_POST['hiddenfield'])){
//--- Voeg het bericht toe aan de database
$sql = "INSERT INTO gastenboek_2011 SET ";
$sql .= "id = ''";
$sql .= ", naam = '" . $_POST['naam'] . "'";
$sql .= ", woonplaats = '" . $_POST['woonplaats'] . "'";
$sql .= ", bericht = '" . $_POST['bericht'] . "'";
$sql .= ", datum = '" . $datum . "'";
//--- Voor de SQL code uit
$res = mysql_query($sql);
//--- Als het goed is gegaan, is $res niet leeg
if (!empty($res))
{
echo "
Bericht toegevoegd
";
echo "
Bedankt voor uw reactie.
Het bericht is toegevoegd aan de lijst. Voor een overzicht van alle berichten: het berichten overzicht";
}
//--- Het bericht is niet toegevoegd, problemen met de database!
//--- Je ziet dat hier geen akkolades worden gebruikt (dus: { en }). Omdat er
//--- Slechts 1 regel onder de 'else' moet worden uitgevoerd is dit niet nodig.
else
echo "Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database.";
}
else{
echo "ongeldig bericht";
//-------------------------------
// Voeg een nieuw bericht toe
//-------------------------------
/*
Als het GET is, wordt het dus meegegeven in het URL adres
Hier staat dus:
Als show=add in het URL adres staat, volg dan dit stukje.
Bijvoorbeeld: index.php?show=add
*/
}}
elseif ($_GET['show'] == "add" || $_POST['show'] == "add")
{
echo "
Voeg een bericht toe
";
// Als het formulier verstuurd is, dan ben je hier eerder geweest. De velden zijn dan niet juist ingevuld.
if ($_SERVER['REQUEST_METHOD'] == "POST")
echo "
Bericht nog niet geplaatst. Vul naam en woonplaats beide in en plaats opnieuw.
";
/*
Laat het formulier zien
Hier zie je dus ook: method=POST. Dit betekent dus dat het server-side verstuurd wordt en niet via de URL.
*/
echo "
";
}
//-------------------------------
// Voeg een nieuw bericht toe
//-------------------------------
else
{
print("
");
echo "
Wij hopen natuurlijk dat de echo van onze concerten nog lang nagalmt in de hoofden van ons publiek. Als dat zo is, voeg dan hier: uw gewaardeerde reactie toe aan deze pagina.
";
print("
");
print("
");
echo "
Ingezonden berichten:
";
print("
");
/*
Hier worden de berichten geselecteerd uit de database
DATE_FORMAT(datum, ...) is nodig omdat (zoals eerder geschreven)
de datum als volgt in de database staat: 2006-11-27 12:02:53. Om
dit op zijn Nederlands te weergeven, gebruiken we de MySQL functie DATE_FORMAT.
De %d staat voor de dag, %m voor de maand en %Y voor het jaar dus: 27.11.2007
*/
$sql = "SELECT id,naam,woonplaats,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM gastenboek_2011 ORDER BY datum DESC";
// Voer SQL code uit
$res = mysql_query($sql);
// Kijk of er 1 of meerdere rijen gevonden zijn
if (mysql_num_rows($res) >= 1)
{
// Toon elke rij tot dat er geen rijen meer zijn
while ($row = mysql_fetch_array($res))
{
$row['woonplaats'] = htmlentities($row['woonplaats']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
print("
");
print("
");
echo "" . $row['show_datum'] . "";
print("
");
echo "
" . $row['naam'] . "
uit:
" . $row['woonplaats'] . "
";
print("
");
echo "
'" . $row['bericht'] . "'
";
print("
");
print("
");
print("
");
}
}
// Er zijn geen rijen gevonden, geef aan dat er nog geen berichten zijn toegevoegd
else
echo "
Er zijn nog geen berichten geplaatst.
";
print("
");
}
print("
");
print("
");
?>