Opnieuw verzenden formulier voorkomen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

JvG G

JvG G

30/03/2007 13:20:00
Quote Anchor link
Ik heb een PM systeem gemaakt.
Als je een berichtje stuurt dan krijg je netjes een melding dat het verzonden is.

Als je daar op F5 drukt dan wordt het nogmaals verzonden. Ik denk dat dit een veel voorkomend probleem is. Vaak zie je het bij een poll ofzo als je vorige doet dat je dan opnieuw het formulier kunt verzenden.

Ik ben op zoek naar een oplossing waarbij je het formulier niet opnieuw kunt verzenden. Maar waarbij je nog wel een nieuwe PM moet kunnen versturen.
 
PHP hulp

PHP hulp

09/01/2025 00:41:35
 
Thijs X

Thijs X

30/03/2007 13:30:00
Quote Anchor link
Je kan het met verschillende manieren tegengaan.
Als je al je velden controleerd of ze zijn ingevuld (neem aan dat je dat doet).

Dan unset je alle variabelen bij het verzenden.
 
Terence Hersbach

Terence Hersbach

30/03/2007 13:34:00
Quote Anchor link
je kan ook direct als het in je database weggeschreven is een header("Location: paginametberichtenoid.php") gebruiken.
 
Frank -

Frank -

30/03/2007 13:34:00
Quote Anchor link
Een PM systeem? Met database? Maak de combintatie van velden UNIQUE. Men kan dan zovaak hetzelfde bericht verzenden als men wil (dat kun je onmogelijk tegengaan), maar er wordt slechts 1 bericht opgeslagen.

unset() helpt niet, dat werkt leuk op de server maar niet in de browser van de bezoeker. En het is de browser die de data toestuurt.
 
Thijs X

Thijs X

30/03/2007 13:36:00
Quote Anchor link
Kan altijd nog headers gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
// Headers zetten zodat de de inhoud niet word gecashed
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
 
Frank -

Frank -

30/03/2007 13:42:00
Quote Anchor link
Die header is inderdaad ook geen slecht plan. Niet 100% waterdicht (browser en dus de gebruiker bepaalt wat er moet gebeuren), maar het komt wel in de buurt.
 
JvG G

JvG G

30/03/2007 13:48:00
Quote Anchor link
Hoe maak ik de combinatie van alle velden UNIQUE ? door in PhpMyAdmin bij alle velden op het knopje UNIQUE te drukken?
 
Thijs X

Thijs X

30/03/2007 13:51:00
Quote Anchor link
Gewoon alle velden selecteren en zie je onderaan inderdaad knopje UNIQUE staan.
 
JvG G

JvG G

30/03/2007 13:54:00
Quote Anchor link
Ik krijg deze foutmelding terug van PhpMyAdmin:

ALTER TABLE `priveberichten` ADD UNIQUE (

`PmId` ,
`FromUserId` ,
`ToUserId` ,
`DateTime` ,
`Onderwerp` ,
`Bericht` ,
`Gelezen`
);



MySQL said:

#1170 - BLOB/TEXT column 'Onderwerp' used in key specification without a key length
 
JvG G

JvG G

30/03/2007 13:56:00
Quote Anchor link
Maar nu bedenk ik mezelf dat deze combinatie nooit uniek is door het DateTime veld. Deze word elke keer met NOW() ingevuld. Dus dat scheelt zowieso elke keer 1 seconde.

Dat maakt het geheeld dan toch elke keer een unieke combinatie?
 
Dizzy

Dizzy

30/03/2007 13:58:00
Quote Anchor link
niet als je UNIQUE bij bericht zet :)
de kans is super klein dat iemand anders juist hetzelfde bericht heeft geschreven
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.