hallo,ik ben bezig aan een gastenboek voor mijn website.het volgende gaat telkens verkeerd.zodra ik een berricht plaats dat ongeveer 300 letters bevat krijg ik de tekst niet netjes onder elkaar maar in een stuk achter elkaar.

het is de beoeling dat er een soort box om mijn berrichten geplaats wordt.zodat het berricht netjes in een box staat.

wie kan mij helpen met dit probleem.

folder structuur htdocs:
css
database
..................................................
database stuctuur is:

id auto prime_key,
naam: var 255,
email var 255,
berricht TEXT

..........................

hier mijn database:


<?php 
$connect_error = 'sorry wij hebben geen verbinding met onze database';
mysql_connect('localhost','root','') or die($connect_error);
mysql_select_db('test') or die($connect_error);    
?>



.........................
hier mijn css code :


body {
margin:0px;
padding:0px;
}

#gastenboek {
margin:0px; 
padding:0px;
width:100%;
height:auto;
background:#000;
}

#gastenboek ul {
margin:0px;
padding:10px;
width:450px;
height:200px;
list-style:none;
}

#gastenboek li {
width:450px;
height:200px;
text-align:left;
font-family:arial;
font-size:14px;
color:#FFF;
}


.................................

hier mijn index.php:

<?php
include 'database/connect.php';
?>
<html>
<head>
<title>gastenboek</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<div id="gastenboek">
<ul>
<?php
$errors = array(); 
if (isset($_POST['naam'], $_POST['email'], $_POST['berricht'])) {
	
	$naam = mysql_real_escape_string(htmlentities($_POST['naam']));
	$email = mysql_real_escape_string(htmlentities($_POST['email']));
	$berricht = mysql_real_escape_string(htmlentities($_POST['berricht']));
	
	if (empty($naam) || empty($email) || empty($berricht)) {
		$errors[] = 'Alle velden zijn verplicht in te vullen.';
	}
	
	if (strlen($naam)>255 || strlen($email)>255 || strlen($berricht)>500) {
		$errors[] = 'Een of meer velden hebben te veel letters.';
	}
	
	if (empty($errors)) {
		$insert = "INSERT INTO `gastenboek` VALUES ('','$naam','$email','$berricht')";
		if (mysql_query($insert)) {
			header('Location: '.$_SERVER['PHP_SELF']);
			exit();
		
		} else {
			$errors[] = 'Er ging iets goed miss.';
		}
	} else {
	  foreach($errors as $error) {
		  echo '<li><strong>'.$error.'</strong></li>';
	  }
	}
} else {
	 
}

$entries = mysql_query("SELECT `naam`, `berricht` FROM `gastenboek`");

if (mysql_num_rows($entries)== 0) {
	echo '<li>Er zijn nog geen berrichten</li>';
} else {
while ($entries_row = mysql_fetch_assoc($entries)) {
	$entries_name = $entries_row['naam'];
	$entries_message = $entries_row['berricht'];
	
	echo '<li><strong>naam klant:</strong> '.$entries_name.'<br>'.$entries_message.'<br></li>';
}
}
?>
</ul>
</div>
<ul>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post">
<li>
naam:<br>
<input type="text" name="naam">
</li>
<li>
email:<br>
<input type="text" name="email">
</li>
<li>
berricht:<br>
<textarea name="berricht" cols="35" rows="8"></textarea>
</li>
<li>
<input type="submit" name="submit" value="verzenden">
</li></ul>
</form>
</body>
</html>


wie kan mij helpen het probleem op te lossen.het is de bedoeling dat alles netjes in een box gepost wordt dat niet groter is als 450px en een height heeft auto....

mvg

Als het goed is past de hoogte van de box zich automatisch aan aan de inhoud.

Probeer in je query, waar je data in de database zet, de variabele 'berricht' (dit heb je overigens verkeerd geschreven, moet zijn 'bericht') eerst door een functie van php laten gaan namelijk nl2br().

Plaats het volgende voor je query:


$berricht = nl2br($berricht);
//berricht hoort bericht te zijn :|
Staan er wel spaties in je bericht?
Tim, ik denk dat ie bedoelt dat als je in een textarea op enter drukt, dat er dan een newline komt, ook in de database.

Reageren