Ik heb een contactformulier, en wil dat bij een foutmelding de waardes van de velden behouden blijven.
Dit gebeurt momenteel niet, ik snap alleen niet waarom niet.

Dit is het volledige script

<?php
//////////////////////////////////////////////
// contact.php								//
// page where everyone can contact us		//
// 											//
//									 		//
// creation: 2008-05-03				 		//
// last modified: 2008-05-04		 		//
// created by: Stefan van Iwaarden   		//
// last modified by: Stefan van Iwaarden 	//
//////////////////////////////////////////////

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
	if (!empty($_POST['naam']) && !empty($_POST['email']) && !empty($_POST['bericht']))
	{
		if (isset($_SESSION['userID']))
		{
			$userID	= $_SESSION['userID'];
		}
		else
		{
			$userID	= 0;
		}
	
		$query	= "INSERT INTO 
						tickets_berichten
							(userID,
							onderwerp,
							naam,
							email,
							bericht,
							status,
							datum)
						VALUES
							(".$userID.",
							".$_POST['onderwerp'].",
							'".mysql_real_escape_string($_POST['naam'])."',
							'".mysql_real_escape_string($_POST['email'])."',
							'".mysql_real_escape_string($_POST['bericht'])."',
							1,
							NOW())";
		if ($result	= mysql_query($query) or die (mysql_error()))
		{
			echo 'Uw bericht is succesvol verstuurd!<br />';
			echo 'Wij streven ernaar binnen 12 uur een reactie te geven';
		}
		else
		{
			echo 'Er is een fout opgetreden bij het versturen van uw bericht, Mocht dit probleem zich blijven voordoen kunt u contact met de webmaster opnemen via [email protected]';
		}	
	}
	else
	{
		?><meta http-equiv="refresh" content="0; url=?page=contact&action=error"><?php	
	}
}
else
{
?> 
	<h2>Contact</h2>
	
	<form method="post">
	<table>
	<?php
	if (isset($_GET['action']) && $_GET['action'] == 'error')
	{
		echo '<tr><td colspan="2"><font color="red">Niet alle velden zijn ingevuld</font></td></tr>';
	}
	?>
	<tr>
		<td><b>Naam</b></td>
		<td><input type="text" name="naam" value="<?php echo $_POST['naam']; ?>" size="30"></td>
	</tr>
	<tr>
		<td><b>E-mail</b></td>
		<td><input type="text" name="email" value="<?php echo $_POST['email']; ?>" size="30"></td>
	</tr>
	<tr>
		<td><b>Onderwerp</b></td>
		<td><select name="onderwerp">
		<?php
		$query	= "SELECT * FROM tickets_onderwerpen ORDER BY rang ASC";
		$result	= mysql_query($query) or die (mysql_error());
		
		while ($row = mysql_fetch_array($result))
		{
			if ($row['id'] == $_POST['onderwerp'])
			{
				echo '<option value="'.$row['id'].'" selected>'.$row['onderwerp'].'</option>';
			}
			else
			{
				echo '<option value="'.$row['id'].'">'.$row['onderwerp'].'</option>';
			}
		}
		?>
		</select></td>
	</tr>
	<tr>
		<td><b>Bericht</b></td>
	</tr>
	<tr>
		<td colspan="2"><textarea name="bericht" cols="40" rows="10"><?php echo $_POST['bericht']; ?></textarea></td>
	</tr>
	<tr>
		<td><input type="submit" name="submit" value="Versturen"></td>
	</tr>
	</table>
	</form>
<?php
}
?>
laat maar
Agedeo:

Jij mag nooit maar dan ook NOOIT meer antwoord geven op een topic. Ik verbied het je.

Die echo klopt prima.

Probleem is dat je met je if statment alles afvangt. Als je de else om je formulier vandaan haalt dan zou je al meer resultaat moeten krijgen.

[edit]
NOOIT zeg ik je :P
[/edit]
Sorry hoor probeer alleen maar te helpen.
Samen komen we er wel uit. Heb hem toch goed opweg geholpen of niet dan
in de omgekeerde wereld ja
Nee zelfs dat niet. Zijn methode is de goede en de 2 die jij aandraagt harstikke FOUT Je helpt hem :

a. Van de wal in de sloot.
b. van de regen in de drup.

Pick one
AgeDeO schreef op 05.05.2008 10:36
Heb hem toch goed opweg geholpen of niet dan
Nee, dat heb je niet. Een variabele hoort nooit en te nimmer omsloten te worden door quotes, en al helemaal niet door accolades. Dat het werkt is een ander verhaal, maar het is zeker niet de bedoeling. Het is vragen om bugs in je applicatie en dat kunnen de meest nare bugs zijn om er weer uit te vissen. Nooit doen dus!
zo beter dan? ik zal het nooit meer doen :(
AgeDeO schreef op 05.05.2008 10:41
zo beter dan? ik zal het nooit meer doen :(

(y)
AgeDeO schreef op 05.05.2008 10:41
zo beter dan? ik zal het nooit meer doen :(
Beter dan een echt verkeerde oplossing. Het wordt gewaardeerd dat je mensen probeert te helpen, maar aan de oplossing die je aandroeg had de TS echt niets.

Maar goed, bekijk het van deze kant: je hebt nu zelf weer iets bijgeleerd ;-)
das waar, ik begrijp het ook wel hoor. maar ik dacht dat ik het goed had en dat bleek niet zo te zijn. Dus dan kan ik het beter weghalen. volgende keer beter. Kijk maar eens in het forum spellen bug. Daar doe ik het toch wel goed of niet dan :P

Reageren