webForumDet fria alternativet

Uppdaterings-problem

9 svar · 295 visningar · startad av The_L

The_LMedlem sedan okt. 2001154 inlägg
#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

SPiNMedlem sedan mars 20005 832 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.

The_LMedlem sedan okt. 2001154 inlägg
#3

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

// The_L

MatteMedlem sedan aug. 20002 970 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.

The_LMedlem sedan okt. 2001154 inlägg
#5

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

// The_L

SPiNMedlem sedan mars 20005 832 inlägg
#6

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

MatteMedlem sedan aug. 20002 970 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.

SPiNMedlem sedan mars 20005 832 inlägg
#8

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

The_LMedlem 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

MatteMedlem sedan aug. 20002 970 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 ( ?> ).

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb