webForumDet fria alternativet
Logga in / Bli medlem

Uppdaterings-problem

PHP

9 svar · 295 visningar · startad av The_L

Medlem sedan okt. 2001154 inlägg
Trådstart#1

Jag har gjort ett litet php-script som ska skriva ut alla personer i en databas gjord i mysql. Det går även att lägga in personer via ett formulär. Detta funkar bra, men om jag trycker på uppdatera-ikonen i webläsaren så läggs det senaste namnet till igen och det var inte riktigt meningen. Hittade ett kommando som heter mysql_free_result(); men jag får bara felmeddelandet "wrong parameter count".
Nån som har nåt litet tips?

// The_L

Medlem sedan mars 20007 896 inlägg
#2

mysql_free_result() löser nog inte ditt problem, du får helt enkelt göra en kontroll på om informationen redan existerar i databasen.

Medlem sedan okt. 2001154 inlägg
#3

Ok, det tänkte jag inte på =)
Tack för tipset.

// The_L

Medlem sedan aug. 20002 975 inlägg
#4

Själv brukar jag, för att slippa uppdateringsproblemet, ladda om sidan efter att jag sparat uppgifter från ett postat formulär. Vanligtvis gör jag det med header():

header("Location: sida.php");
exit;

// eller till samma sida
header("Location: ".$_SERVER['PHP_SELF']);
exit;

Det finns dock ett litet aber med header(). Det får inte finnas någon output till läsaren tidigare på sidan. Alltså ingen HTML, ingen echo, ingen tomrad eller ens ett mellanslag före php-taggen.

Medlem sedan okt. 2001154 inlägg
#5

Ja, det var ju också ett knep.
Tackar.

// The_L

Medlem sedan mars 20007 896 inlägg
#6

Men då finns fortfarande möjligheten att användaren går tillbaka en sida och klickar på uppdatera.

Medlem sedan aug. 20002 975 inlägg
#7

Gå man tillbaka en sida så kommer man till formuläret. Naturligtvis kan användaren posta om formuläret, men det sker inte av misstag genom att uppdatera.

Medlem sedan mars 20007 896 inlägg
#8

Om man sätter header-location till samma sida, ja. Det tänkte jag inte på. :)

Medlem sedan okt. 2001154 inlägg
#9

Jag är ganska ny på det här med php, så jag undrar: Om jag sätter headern överst. Hinner scriptet ta emot variablerna från formuläret då, innan headern hinner uppdatera sidan?

// The_L

Medlem sedan aug. 20002 975 inlägg
#10

Du låter först skriptet ta emot dina variabler och gör vad du ska. Sedan sätter du headern.

Men det är ett aber:
Du får inte ha någon output till läsaren före header().
Alltså, ingen HTML-kod, ingen echo eller print, ingen tomrad eller mellanslag före din php-tagg. Inkluderar du kod så se till att de inkluderade filerna inte har något mellanslag eller radbyte efter den avslutande php-taggen ( ?> ).

259 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)