WDHBGS
Terugkerende gebruiker
- Lid geworden
- 18 dec 2010
- Berichten
- 1.348
Hallo,
Ik heb een PHP-Gastenboek-script, maar er zit ergens een foutje.
Het script werkte eerst volledig, toen ik nog geen taalpakket functie erin had gemaakt.
Ik werk met veel variabelen.
Ik krijg geen PHP Errors.
Het staat op http://gastenboek-test-wdhbgs.comuf.com
Hieronder Gastenboek.php:
<?php
include ("lang_nl.php");
error_reporting(E_ALL);
$host = "----------"; // Je host
$user = "----------"; // Je MySQL gebruikersnaam
$pass = "----------"; // Je MySQL wachtwoord
$datb = "----------"; // Je MySQL database
// Verbinding maken
mysql_connect($host, $user, $pass) or die ("$lang_1");
mysql_select_db($datb) or die ("$lang_1");
// UBB aanmaken
function ubb($string) {
$string = htmlspecialchars($string); // Beveiligen voor XSS injection
$string = stripslashes($string); // Slashes verwijderen
$string = nl2br($string); // Zorgen dat er meerdere regels gebruikt kunnen worden
$string = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $string); // => <b></b>
$string = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $string); // => <i></i>
$string = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $string); // => <u></u>
$string = preg_replace("#\[s\](.+?)\[/s\]#is", "<s>\\1</s>", $string); // => <s></s>
return $string;
}
$dagen = Array("$lang_8", "$lang_2", "$lang_3", "$lang_4", "$lang_5", "$lang_6", "$lang_7");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$lang_9</title>
</head>
<body>
<h1>$lang_10</h1>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Als er een veld niet ingevuld is
if (empty($_POST['naam']) || empty($_POST['bericht'])) {
echo '<span style="color:red; font-weight: bold">$lang_11</span>';
} elseif (strlen($_POST['naam']) > 16 || strlen($_POST['bericht']) > 500) {
echo '<span style="color:red; font-weight: bold">$lang_12</span>';
} elseif ($_POST['dag'] != $dagen[date('w')]) {
echo '<span style="color:red; font-weight: bold">$lang_13</span>';
} else {
// Als alle velden ingevuld zijn wordt het bericht gefilterd toegevoegd
if (mysql_query("INSERT INTO gastenboek (naam, bericht, datum, ip) VALUES ('".trim(mysql_real_escape_string($_POST['naam']))."', '".trim(mysql_real_escape_string($_POST['bericht']))."', NOW(), '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')")) {
echo '<span style="color:green; font-weight: bold"$lang_14</span>';
} else {
echo '<span style="color:green; font-weight: bold">$lang_15</span>';
}
}
}
?>
<form method="post" action=""><p>
$lang_16<br />
<input type="text" name="naam" maxlength="16" /><br /><br />
$lang_17<br />
<input type="text" name="dag" /><br /><br />
$lang_18<br />
<textarea name="bericht" id="tekst" rows="6" cols="37"></textarea><br /><br />
<input type="submit" value="$lang_19" onclick="this.value='$lang_20';" /> <input type="reset" value="$lang_21" />
</p></form>
<hr />
<p>
<?php
// Gegevens ophalen uit de database en sorteren op id
$sql = mysql_query("SELECT * FROM gastenboek ORDER BY datum DESC");
if (mysql_num_rows($sql) == 0) {
// Als er nog geen reacties geplaatst zijn
echo '$lang_22';
} else {
while($data = mysql_fetch_assoc($sql)) {
// Als er wel reacties zijn geplaatst worden deze nu weergegeven
echo '<b>$lang_23</b> '.htmlspecialchars(stripslashes($data['naam'])).'<br />
<b>$lang_24</b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
<b>$lang_25</b><br />'.ubb($data['bericht']).'<br /><br />';
}
}
?>
</p>
</body>
</html>(De MySQL Server is vanwege geheime wachtwoorden verwijderd in het bovenstaande script.)
Taalpakket (lang_nl.php):
<?php
$lang_1 = "Er is iets mis gegaan";
$lang_2 = "maandag";
$lang_3 = "dinsdag";
$lang_4 = "woensdag";
$lang_5 = "donderdag";
$lang_6 = "vrijdag";
$lang_7 = "zaterdag";
$lang_8 = "zondag";
$lang_9 = "Gastenboek";
$lang_10 = "Reactie plaatsen";
$lang_11 = "Je hebt niet alle velden ingevuld!";
$lang_12 = "De ingevulde velden hebben te veel karakters (naam maximaal 16, bericht maximaal 500)";
$lang_13 = "De ingevulde dagnaam klopt niet!";
$lang_14 = "Je reactie is succesvol toegevoegd!";
$lang_15 = "Er is iets fout gegaan en je reactie is niet toegevoegd. Probeer het later opnieuw.";
$lang_16 = "Naam: (maximaal 16 karakters)";
$lang_17 = "Welke dag is het vandaagDit is ter beveiliging en je moet er voor zorgen dat CAPS LOCK uit staat en de SHIFT-toets ook NIET ingedrukt.)";
$lang_18 = "Bericht: (maximaal 500 karakters)";
$lang_19 = "Toevoegen";
$lang_20 = "Reactie wordt geplaatst";
$lang_21 = "Herstel";
$lang_22 = "We hebben nog geen reacties!";
$lang_23 = "Naam:";
$lang_24 = "Datum:";
$lang_25 = "Bericht:";
?>Ik hoop dat iemand snel een oplossing heeft.:thumb:.
Groetjes, WDHBGS:d:thumb::thumb::d
Ik heb een PHP-Gastenboek-script, maar er zit ergens een foutje.
Het script werkte eerst volledig, toen ik nog geen taalpakket functie erin had gemaakt.
Ik werk met veel variabelen.
Ik krijg geen PHP Errors.
Het staat op http://gastenboek-test-wdhbgs.comuf.com
Hieronder Gastenboek.php:
<?php
include ("lang_nl.php");
error_reporting(E_ALL);
$host = "----------"; // Je host
$user = "----------"; // Je MySQL gebruikersnaam
$pass = "----------"; // Je MySQL wachtwoord
$datb = "----------"; // Je MySQL database
// Verbinding maken
mysql_connect($host, $user, $pass) or die ("$lang_1");
mysql_select_db($datb) or die ("$lang_1");
// UBB aanmaken
function ubb($string) {
$string = htmlspecialchars($string); // Beveiligen voor XSS injection
$string = stripslashes($string); // Slashes verwijderen
$string = nl2br($string); // Zorgen dat er meerdere regels gebruikt kunnen worden
$string = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $string); // => <b></b>
$string = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $string); // => <i></i>
$string = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $string); // => <u></u>
$string = preg_replace("#\[s\](.+?)\[/s\]#is", "<s>\\1</s>", $string); // => <s></s>
return $string;
}
$dagen = Array("$lang_8", "$lang_2", "$lang_3", "$lang_4", "$lang_5", "$lang_6", "$lang_7");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$lang_9</title>
</head>
<body>
<h1>$lang_10</h1>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Als er een veld niet ingevuld is
if (empty($_POST['naam']) || empty($_POST['bericht'])) {
echo '<span style="color:red; font-weight: bold">$lang_11</span>';
} elseif (strlen($_POST['naam']) > 16 || strlen($_POST['bericht']) > 500) {
echo '<span style="color:red; font-weight: bold">$lang_12</span>';
} elseif ($_POST['dag'] != $dagen[date('w')]) {
echo '<span style="color:red; font-weight: bold">$lang_13</span>';
} else {
// Als alle velden ingevuld zijn wordt het bericht gefilterd toegevoegd
if (mysql_query("INSERT INTO gastenboek (naam, bericht, datum, ip) VALUES ('".trim(mysql_real_escape_string($_POST['naam']))."', '".trim(mysql_real_escape_string($_POST['bericht']))."', NOW(), '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')")) {
echo '<span style="color:green; font-weight: bold"$lang_14</span>';
} else {
echo '<span style="color:green; font-weight: bold">$lang_15</span>';
}
}
}
?>
<form method="post" action=""><p>
$lang_16<br />
<input type="text" name="naam" maxlength="16" /><br /><br />
$lang_17<br />
<input type="text" name="dag" /><br /><br />
$lang_18<br />
<textarea name="bericht" id="tekst" rows="6" cols="37"></textarea><br /><br />
<input type="submit" value="$lang_19" onclick="this.value='$lang_20';" /> <input type="reset" value="$lang_21" />
</p></form>
<hr />
<p>
<?php
// Gegevens ophalen uit de database en sorteren op id
$sql = mysql_query("SELECT * FROM gastenboek ORDER BY datum DESC");
if (mysql_num_rows($sql) == 0) {
// Als er nog geen reacties geplaatst zijn
echo '$lang_22';
} else {
while($data = mysql_fetch_assoc($sql)) {
// Als er wel reacties zijn geplaatst worden deze nu weergegeven
echo '<b>$lang_23</b> '.htmlspecialchars(stripslashes($data['naam'])).'<br />
<b>$lang_24</b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
<b>$lang_25</b><br />'.ubb($data['bericht']).'<br /><br />';
}
}
?>
</p>
</body>
</html>(De MySQL Server is vanwege geheime wachtwoorden verwijderd in het bovenstaande script.)
Taalpakket (lang_nl.php):
<?php
$lang_1 = "Er is iets mis gegaan";
$lang_2 = "maandag";
$lang_3 = "dinsdag";
$lang_4 = "woensdag";
$lang_5 = "donderdag";
$lang_6 = "vrijdag";
$lang_7 = "zaterdag";
$lang_8 = "zondag";
$lang_9 = "Gastenboek";
$lang_10 = "Reactie plaatsen";
$lang_11 = "Je hebt niet alle velden ingevuld!";
$lang_12 = "De ingevulde velden hebben te veel karakters (naam maximaal 16, bericht maximaal 500)";
$lang_13 = "De ingevulde dagnaam klopt niet!";
$lang_14 = "Je reactie is succesvol toegevoegd!";
$lang_15 = "Er is iets fout gegaan en je reactie is niet toegevoegd. Probeer het later opnieuw.";
$lang_16 = "Naam: (maximaal 16 karakters)";
$lang_17 = "Welke dag is het vandaagDit is ter beveiliging en je moet er voor zorgen dat CAPS LOCK uit staat en de SHIFT-toets ook NIET ingedrukt.)";
$lang_18 = "Bericht: (maximaal 500 karakters)";
$lang_19 = "Toevoegen";
$lang_20 = "Reactie wordt geplaatst";
$lang_21 = "Herstel";
$lang_22 = "We hebben nog geen reacties!";
$lang_23 = "Naam:";
$lang_24 = "Datum:";
$lang_25 = "Bericht:";
?>Ik hoop dat iemand snel een oplossing heeft.:thumb:.
Groetjes, WDHBGS:d:thumb::thumb::d
Laatst bewerkt: