WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   PHP - Problem (https://www.wn.se/forum/showthread.php?t=27413)

Martin™ 2008-02-23 15:08

På min förstasida.php har jag en form som skickar vidare data med hjälp av "post" till en annansida.php. På annansida.php skrivs datan in i min databas, samtidigt som jag skriver ut datan på skärmen.

Hur ska jag göra så att inte informationen skrivs in i databasen igen när man trycker Refresh?

sasserdude 2008-02-23 15:15

måste väl gå med en vanlig submit knapp? att när det skall in i en databas så klickar man, klickar man inte så ska de inte in något..

jag är inte så duktig så du vet.

lunarmys 2008-02-23 15:18

på annansida.php så kör du nånting i stil med

if (count($_POST) > 0)
{
// släng in datan i databasen
header("Location: annansida.php");
exit;
}

så insert'ar den bara när sidan submittas å det gör den endast ifrån framsidan

kers 2008-02-23 15:18

Fyll i ett gömt-fält med ett random unikt värde som du lagrar i databasen som en kontrollnyckel vid en sparing. Vid var sparning kollar du om det värdet redan finns i databasen - om det gör det avbryter du procesen och skriver ut ett meddelande om att användarna inte ska refresha efter post :)

Adam 2008-02-23 15:26

Jag brukar sätta att submitknappen heter skicka, och på processidan så gör jag en if sats i stil med if(isset($_POST["skicka"])) {..}. Gillar detta lite bättre än lunarmys förslag då det gör att koden blir mer lättläslig.

MVH

Martin™ 2008-02-23 15:38

Jag sitter och jobbar lite med lunarmys förslag men det går inte så bra. Så jag ska testa adams variant.

Martin™ 2008-02-23 15:57

Kod:

if(isset($_POST["skicka"])) {..}
Det fungerade inte, sidan matar in datan i databasen varje gång man trycker refresh.

gsoc 2008-02-23 16:05

Kolla om datan redan finns i databasen?

tartareandesire 2008-02-23 16:11

Citat:

Originally posted by gsoc@Feb 23 2008, 17:05
Kolla om datan redan finns i databasen?

Förutsatt att unik data krävs då... Annars måste man kunna identifiera en post och då får du köra ett random-id som följer med formuläret som kers föreslog ovan.

Martin™ 2008-02-23 16:24

Citat:

Originally posted by gsoc@Feb 23 2008, 17:05
Kolla om datan redan finns i databasen?

Ja det hade fungerat men i min databas får det finnas samma data flera gånger.

Så här vill jag att sida ska fungera:

Besökaren anger sin längd i min form sen när man trycker skicka så kommer man till en ny sida där datan läggs in i en databas.

Hämta: $allas-totala-längd från databas.

Räkna fram nytt värde: $allas-totala-längd = $allas-totala-längd + $_POST['längd']

Uppdatera: $allas-totala-längd i databasen.

Visa den nya: $allas-totala-längd på hemsidan tillsammans med den datan som matades in i formen.


Alla tider är GMT +2. Klockan är nu 06:00.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson