Jag har en sida med ett formulär som matar in nya poster i en databas. - använd POST och inte GET för att stoppa in stuff i databasen Fast då brukar man få en fråga om att posta igen när man trycker F5. Det blir inte mycket bättre, eftersom en besökare troligen trycker ja. (Användare har lärt sig trycka Ja på alla frågor som kommer upp.) Tack för svaret. När du är klar med att lägga in saker i tabellen och vill visa posterna, lägg in Minns inte riktigt om det här var rätt sätt men prova att köra unset() på de aktuella variablerna. Tyvärr så skickas POST från webbläsaren varje gång du uppdaterar så du kan inte ta bort dem utan att redirecta sidan.Blokera uppdatering av sidan
Jag har uppsäckt att om man trycker på uppdatera sidan efter att man postat formuläret så läggs den senaste ny posten till en gång till.
Går detta att förhindra på något sätt?
mvh
TorgnySv: Blokera uppdatering av sidan
Sv:Blokera uppdatering av sidan
Det rätta är att efter att data har lagts in i databasen, skicka besökaren vidare till visningssidan genom "redirect".Sv: Blokera uppdatering av sidan
Var/hur lägger jag in "rederect" i koden.
Jag är nybörjare med php
Torgny Sv:Blokera uppdatering av sidan
header('Location: visningssida.php');
där visningssida.php förstås är namnet på sidan som visar posterna.
Sv: Blokera uppdatering av sidan
Om jag minns rätt ska variablerna då tömmas på sitt värde och då finns inget att stoppa in.Sv:Blokera uppdatering av sidan
Ett annat alternativ är att spara ett unikt värde (som varierar mellan varje sidvisning tex. en timestamp som microtime();) i en <input type="hidden">. Då har du möjlighet att söka efter dubbletter med det unika värdet innan du sparar värdena. Att två användare skulle kunna få samma microtime() tror jag inte kan inträffa.
Man kan även spara en cookie eller session efteråt som verifierar att värdena blivit sparad en gång.
Jag föredrar att redirecta posten iallafall.
index.php <-> post.php