Hallo iedereen ;)

Zo als ik in de titel al zei, mijn gastenboek schrijft geen gegevens meer in de database, en ze haalt ook geen gegevens meer op.


<?
	include("routines.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<?standard_head_script();?> 
<title>TeWinkelGroup - Home</title>
</head>
<body>
<center>
<div id="header">
	<table border="0" cellspacing="1">
	<tr>
	<td>
	<?logo();?>
	</td>
	<td>
		<div id="menu">
			<ul>
				<center>
					<li class="active">
					<a href="#">Home</a>
					</li>
					<li>
					<a href="#">Gastenboek</a>
					</li>
					<li>
					<a href="#">Geschiedenis</a>
					</li>
					<li>
					<a href="#">Contact</a>
					</li>
				</center>
			</ul>
		</div>
	</td>
	<td width="175px">
	<div id="language">
		<ul>
			<li>	
			<img src="img/nederlan.gif" height="15" width="20"> <a href="">Nederlands</a>
			</li>
			<li>
			<img src="img/frans.gif" height="15" width="20"> <a href="">Frans</a>
			</li>
		</ul>
	</div>
	</td>
	</tr>
	</table>
</div>

<div id="promo">
<!-- Hier komt de promo content.-->
</div>

<div id="content-index">
<center>
test
</center>

</diV>
<div id="content-gastenboek">
	<?
$sql="SELECT * FROM gastenboek ORDER BY datum";
	$result=mysql_query($sql);
	if($result == false){
		echo "Er staan nog geen berichten in het Gastenboek.";
	}
	else{
		while($row = mysql_fetch_array($result)){
			$this_naam=$row['naam'];
			$this_bericht=$row['bericht'];
			$this_datum=$row['datum'];
?>
<div id="show_gastenboek_reacties">
	<table border="1" cellspacing="1" width="500px">
	<tr>
	<td><?spacerwidth15();?></td>
	<td><?spacerheight25();?></td>
	</tr>
	<tr>
	<td>Op  <?echo $this_datum;?> schreef  <?echo $this_naam;?></td>
	</tr>
	<tr>
	<td><?echo $this_bericht;?></td>
	</tr>
	</table>
	<?
	}
	}
	?>
</div>
	<div id="new_gastenboek_reaction">
		<table border="0" cellspacing="1" width="100%">
			<tr>
				<td>
				<center>
				<fieldset>
				<legend><h3>Voeg een bericht toe</h3></legend>
				<form action="" method="post">
					<table border="1">
					<tr>
						<td>Naam:</td>
						<td><input type="text" name="naam" maxlength="50" cols="75" /></td>
					</tr>
					<tr>
						<td>Email:</td>
						<td><input type="text" name="email" maxlength="50" /></td>
					</tr>
					<tr>
						<td>Bericht:</td>
						<td><textarea cols="25" rows="5" name="bericht"></textarea><br /></td>
					</tr>
							<div style="position: absolute; left: -200px; top: -200px;"><br />
							<input type="text" name="funname" id="funname" size="40" value="" />
							</div>
					<tr align="center">
						<td></td>
						<td><input type="submit" name="add_message" value="Verzenden" /><td>
					</tr>
					</table>
				</form>
				</fieldset>
				<?
				// Check of er een bericht gepost is zodat het toegevoegd
				// moet worden
				if ($_POST['add_message']) {
					//1e fase om te kijken of we met hackers of spammers ziten.
					//Indien de funname is ingevuld. Is het een hacker
					//Dan wordt deze speler terug naar gastenboek.php gestuurd
					//en gebeurd er niets.
					if($_POST['funname'] !=''){
						echo"Stouterik! Je bent een hacker!";
					}else{
					// Om database errors te voorkomen, ga ik quotes escapen
					// met een backslash voor elke variabele
					// Een naam met een ' in wordt dan \'
					$naam = addslashes($_POST['naam']);
					$email = addslashes($_POST['email']);
					$bericht = addslashes($_POST['bericht']);

					//hier kijken we na of er iets is ingevuld, is dat niet zo dan geven we hem een mededeling mee
					//dit is de 2e fase om spammers en hackers tegen te gaan.
					if($_POST['naam'] ==''){
						echo "U dient een naam in te vullen!";
					}elseif($_POST['email'] ==''){
						echo "U dient een email in te vullen!";
					}elseif($_POST['bericht'] ==''){
						echo "U dient een bericht in te vullen!";
					}else{
					// Stel de query op met INSERT
					$query = "INSERT INTO gastenboek (naam, email, bericht, datum, ip) "
						   . "VALUES ('$naam','$email','$bericht', NOW(), '".$_SERVER['REMOTE_ADDR']."')";
					// voer de query uit
					$result = mysql_query($query);

					if ($result == true) {
						echo "Bedankt $naam! Om een bericht achter te laten op TeWinkelGroup";
					} else {
						echo "Sorry, er ging iets mis bij het toevoegen van je bericht.";
					}
					}
					}
				}
				?>
				</center>
				</td>
			</tr>
		</table>
	</div>
</div>
<?footer();?>
</center>
</body>
</html>


Weet er iemand waar dat mijn fout zit?
alvast bedankt!
Robbe

[size=xsmall]Toevoeging op 14/04/2014 15:53:59:[/size]

PROBLEEM OPGELOST :D

onder de include("routines.php");

moest ik nog een
connecttodb(); plaatsen :)

  if($result == false){
        echo "Er staan nog geen berichten in het Gastenboek.";
    }

Hoe kom er erbij dat als $result false is dat er geen berichten in je gastenboek staan?
De query is dan gewoon stuk, en dan zou je gewoon netjes mysql_error() moeten bekijken.
Volgens mij kan dit nooit goed gaan.

Je <div> heb je in je while lus staan en wordt dus tig keer geplaatst.
De </div> staat na je while lus zodat er bergen niet afgesloten <div>'s staan.
gebruik ook <¿php in plaats van <¿ omdat de korte versie door veel servers niet (meer) ondersteund wordt.
@Ivo oké, pas ik aan!
@pip Werkt wel hoor :) Geen enkel foutje te bespeuren!
>>> @pip Werkt wel hoor :)

Er is een verschil tussen wel werken en goed werken.

>>> Geen enkel foutje te bespeuren!

Wel in je broncode.
Bij elke bericht open je een div <div id="show_gastenboek_reacties">
Maar sluit hem na de while maar 1x af.
Dus als je 100 berichten hebt, sluit je em 1x en heb je 99 open div's.
Je kunt regel 79 beter verplaatsen tussen 66 en 67.
Ook is t wat overdreven om voor elke bericht een nieuwe table te gebruiken. Als je de table ook opent voor de while en afsluit na de while heb je maar 1 table nodig voor je berichten.

Reageren