hallo, ik ben bezig met een nieuws systeem. en als ik nieuws toevoeg en ik druk op f5 ofzo. dan verzend ie de gegevens nog 1x.

nu wil ik dat als het is gelukt dat hij hem automatisch terug stuurt in de oude staat.
en dat je maar 1x in de 10sec een bericht kan posten.

hoe moet ik dat doen??

script:
 $sql = mysql_query("SELECT uName FROM leden WHERE uId = '" . $_SESSION['uId'] . "'") or die(mysql_error());
	$fetch = mysql_fetch_assoc($sql);

	 
if(isset($_POST['submit']))
{
$auteur = '' . $fetch['uName'] . '';
$datum = date("d-m-Y H:i");
mysql_query("INSERT INTO nieuws (Ntitel, Nbericht, Ndatum, Nauteur) VALUES 
('" . $_POST['Ntitel'] . "','" . $_POST['Nbericht'] . "','" . $datum . "','" . $auteur . "')") or die(mysql_error());
echo 'Het is succesvol toegevoegd.<br />';
}

?>
	
		<form action="admnieuws.php" method="post">
		titel: <input type="text" name="Ntitel" /><br />
		bericht:<br />
		<textarea rows="10" cols="50" name="Nbericht" ></textarea><br />
		<input type="submit" name="submit" />
		</form>


bijvoorbaat dank!
[google]post/redirect/get[/google]
ik snap die code niet helemaal hoor.

<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
// We hebben een post.
// Valideer de waarden van het request.
if( isValid( $_POST ) ) {
// De waarden uit $_POST zijn in orde.
// doe iets met je database.
if( $mydb->accountTransaction( $_POST['to'], $_POST['from'], $_POST['amount'] ) ) {
// transactie is gelukt!
$successpage = 'http://www.mijnsite.nl/transaction/success/';;
header( 'Location: ' . $successpage, true, 303 );
exit( );
// altijd een exit na een location: header!
}
// transactie is mislukt, fouten weergeven.

}
// Waarden van POST zijn niet in orde, fouten weergeven.

}
// formulier weergeven.
?>

want wat moet ik nouw waar plaatsen?
- Controleren of een form gepost is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST') (is bij jou regel vijf).
- Verkeerd database model, leer [google]normaliseren[/google], de id van een lid is waarschijnlijk je primaire sleutel, die zou dan ook bij nieuws gebruikt moeten worden.
- Zie [google]mysql date and time functions[/google], waarschijnlijk moet jij NOW() van mysql gebruiken i.p.v. date() van php. Let wel op dat je het juiste type in de database gebruikt.
- [google]SQL injections[/google] mogelijk, gebruik [php]mysql_real_escape_String[/php].
Nu doe je de redirect.

Reageren