Gastenboek-script taalpaketten

Status
Niet open voor verdere reacties.

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 vandaag:(Dit 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:
Wat gaat er fout? Heb je het ergens online staan?
 
Haha xD Ik denk dat het probleem is dat je de language vars gewoon letterlijk in de HTML hebt gezet, je moet ze wel echo'en met PHP om wat te zien.

Dus niet dit:
HTML:
$lang1

Maar zo:
PHP:
<?php echo $lang1; ?>

Daarnaast moet je ook zorgen dat je de language file include in je bestand, en ergens bovenaan voordat je iets aan output hebt.
 
Bedankt!!!

Bedankt Frats!!!

Ik ga het zo uitproberen!!!

Groetjes, WDHBGS:thumb::d:d:thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan