Gastenboek probleem

Status
Niet open voor verdere reacties.

WDHBGS

Terugkerende gebruiker
Lid geworden
18 dec 2010
Berichten
1.348
Hallo,

Ik heb weer een probleem met hetzelfde gastenboek, als hiervoor.
Bij het vorige probleem had ik gezegd dat ik een taalpakket-functie ging maken.

Nu is de PHP-Code van Gastenboek.php het volgende:

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 ("<?php echo $lang_1;?>");
mysql_select_db($datb) or die ("<?php echo $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] => <b></b>
    $string = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $string); // [i][/i] => <i></i>
    $string = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $string); // [u][/u] => <u></u>
    $string = preg_replace("#\[s\](.+?)\[/s\]#is", "<s>\\1</s>", $string); // [s][/s] => <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><?php echo $lang_9;?></title>
</head>
<body>
<h1><?php echo $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"><?php echo $lang_11;?></span>';
    } elseif (strlen($_POST['naam']) > 16 || strlen($_POST['bericht']) > 500) {
        echo '<span style="color:red; font-weight: bold"><?php echo $lang_12;?></span>';
    } elseif ($_POST['dag'] != $dagen[date('w')]) {
        echo '<span style="color:red; font-weight: bold"><?php echo $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"<?php echo $lang_14;?></span>';
        } else {
            echo '<span style="color:green; font-weight: bold"><?php echo $lang_15;?></span>';
        }
    }
}
?>
<form method="post" action=""><p>
<?php echo $lang_16;?><br />
<input type="text" name="naam" maxlength="16" /><br /><br />
<?php echo $lang_17;?><br />
<input type="text" name="dag" /><br /><br />
<?php echo $lang_18;?><br />
<textarea name="bericht" id="tekst" rows="6" cols="37"></textarea><br /><br />
<input type="submit" value="<?php echo $lang_19;?>" onclick="this.value='<?php echo $lang_20;?>';" /> <input type="reset" value="<?php echo $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 '<?php 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><?php echo $lang_24;?></b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b><?php echo $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:
<?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:";

?>

Nu is het de bedoeling dat, bij
PHP:
<?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 '<?php 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><?php echo $lang_24;?></b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b><?php echo $lang_25;?></b><br />'.ubb($data['bericht']).'<br /><br />';
    }
}
?>
dat echo $lang_24 (Dus dat Datum: verschijnt.) en $lang_25 (Dus dat Bericht: verschijnd.), wel werken, als ik het nu hetzelfde probeer als $lang_23, als ik dan
PHP:
<?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 '<?php 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 />';
    }
}
?>
probeer, krijg ik de volgende PHP-Error: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/a1731204/public_html/Gastenboek.php on line 74.

Ik ben hier al een paar dagen me bezig.

Ik hoop dat iemand een oplossing heeft:thumb:.

Groetjes, WDHBGS
PS: Het staat online op http://gastenboek-test-wdhbgs.comuf.com/Gastenboek.php
 
Laatst bewerkt:
PHP:
<?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 '<?php 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><?php echo $lang_24;?></b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        <b><?php echo $lang_25;?></b><br />'.ubb($data['bericht']).'<br /><br />';
    }
}
?>
Op regels 74 & 75 begin je php opnieuw dmv <?php terwijl deze al geopend is, ietwat vreemd vind ik dat.

Probeer eens iets in de zin van:
PHP:
<?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 '<?php 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 />';
        echo $lang_24.' </b> '.htmlspecialchars(stripslashes($data['datum'])).'<br />';
        echo '<b>'.$lang_25.'</b> <br />'.ubb($data['bericht']).'<br /><br />';
    }
}
?>
 
Het werkt weer!!!

Bedankt Niellles!!!

Het werkt!!!:D

Groetjes, WDHBGS:thumb::d:d:thumb:
 
Ik ben wel heel nieuwsgierig waarom je dit doet
PHP:
 echo '<?php echo $lang_22;?>';
en niet gewoon
PHP:
 echo $lang_22;
 
Ander probleem

phobia,


O, ik sanp het, maar het werkt wel, ik zal er nog even naar kijken.

Groetjes, WDHBGS:d:thumb::thumb::d
 
Laatst bewerkt:
Ik snap hem al, je hebt de gemaakte html code gepakt en in een php echo gedrukt.
Het zou wel wat netter en duidelijker zijn als je de variabelen anders zou gebruiken, maar als je niet sterk bent in php en het werkt
Waarom zou je het dan nog veranderen ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan