Just nu i M3-nätverket
Gå till innehåll

förhindra dubbelpost av kommentarer via refreshknapp


Pumafliff

Rekommendera Poster

Håller på med ett kommentarsformulär till en hemsida. Jag är noob på området, men har lyckats åstakomma iaf den funktion jag vill (bla med hjälp härifrån) även om koden kanske inte är den snyggaste.

Hur som helst så är det en sak som gäckar mig lite. Om jag skriver en kommentar och trycker skicka i mitt formulär så dykerden snyggt upp som den skall under själva nyhetsartikeln, men om jag nu trycker uppdatera på web-läsaren så kommer den där frågan om att skicka data igen... svarar jag ja där så kommer samma kommentar en gång till. Inser att det här är rätt naturligt, men det borde finns nåt sätt att komma runt det hela... eller?

Som info:

Man behöver inte vara inloggad för att skriva kommentarer, alltså inga sessions eller så.

Sendknappen i mitt formulär öpnnar på nytt samma php-sida som man är inne på men lägger till variabeln [comment=upload]. php-siden vi talar om börjar med att kika på om variabeln comment är satt till upload och om den är det så skriver den data till en tabell i min databas och längre ner på sidan hämtar jag datat ur den tabellen för att visa alla kommentarer. Efter att data är skrivet till tabellen så kör jag en [unset] på variabeln comment.

Klurade ett tag på om jag kunde lägga till något hidden-fält i mitt formulär, som avgör om data verkligen skickas eller inte men dels fick jag det inte att funka och dels så kom jag fram till att den torde göra samma sak.

 

Någon som har ide hur man gör här?

Tack

 

Länk till kommentar
Dela på andra webbplatser

okej... nu ska vi se om jag hajar... mitt formulär har ju en skicka-knapp och det är väl då jag "post'ar" mitt formulärdata va, eller kan man göra det på nåt annat sätt också?

Hur menar du att göra det

innan nån html skickas ut
.

Läste lite om PRG, men kanske behöver mer info. Att skicka post'en någon annanstans verkar ju inte vara så svårt, bara att ange en annan sida i "Action" i mitt formulär väl?

Men sedan är jag inte riktigt med vad jag gör med GET...?

 

 

Länk till kommentar
Dela på andra webbplatser

Ja, det enklaste sättet är väl att ändra action till nån sorts redirect.php som innehåller typ:

<?php

 

$data = $_POST['data'];

 

//insert code to save data to database

 

header("Location: http://länktillsidamedformuläret']

 

?>

 

Grejen är du inte får ha nån echo eller nåt annat som spottar ut text före header, för header måste komma först. Men det kommer du få felmeddelande om ifall du skulle göra fel.

 

GET behöver du inte göra nåt med, det sköter sig självt av webbläsaren.

 

Länk till kommentar
Dela på andra webbplatser

Funkar perfekt nu. Stort tack! Poäng. Fan, de e kul o koda :-)

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...