/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Undgå dobbeltregistrering i database
Fra : J Christensen


Dato : 01-12-04 21:21

Jeg har nu fået en formular til at virke, så den både validerer, sender
e-mail og lægger info i databasen.

Men jeg kan ikke finde ud af at undgå, at samme formularinput bliver lagt
ind flere gange (hvis brugeren trykker på tilbageknappen og sender
formularen igen - jeg ved ikke rigtig, hvorfor brugeren skulle få lyst til
det, for vedkommende har allerede fået en bekræftelse på inputtet, men man
ved jo aldrig, hvad brugere finder på

Jeg skal enten have formularfelterne tømt, så man ikke kan sende noget igen
ved at trykker Send, eller stoppe, at det ryger i databasen.

Man kan åbenbart tømme felterne ved hjælp af javascript, men kan det ikke
gøres bedre i php?

Min primære nøgle er et autoincrement-felt. Jeg SKAL nemlig bruge et
automatisk genereret nummer som deltagernummer. Jeg kan åbenbart ikke undgå,
at dette felt også er det primære.

Jeg ville gerne sætte en dobbelt nøgle med fx fornavn-efternavn, men
"unique" er meget bogstavelig - jeg kan ikke få lov at sætte en sådan op i
phpMyAdmin.

Har prøvet forskellige løsninger fundet på nettet fx

$querySQL = "INSERT INTO db (fornavn, efternavn)
VALUES ($fornavn, $efternavn)";
if(!$querySQL) error_message(sql_error());

eller

$foresp = mysql_query("SELECT COUNT (*) FROM db
WHERE fornavn='$fornavn' && efternavn='$efternavn'");

if (mysql_query($foresp) >0) {
echo "blabla";
}

Men jeg kan stadig lægge folk ind et utal af gange.

Kan nogen hjælpe?

Mvh.
Janni Christensne



 
 
Benny Nissen (02-12-2004)
Kommentar
Fra : Benny Nissen


Dato : 02-12-04 07:35

J Christensen pretended :
> Jeg har nu fået en formular til at virke, så den både validerer, sender
> e-mail og lægger info i databasen.
>
> Men jeg kan ikke finde ud af at undgå, at samme formularinput bliver lagt
> ind flere gange (hvis brugeren trykker på tilbageknappen og sender
> formularen igen - jeg ved ikke rigtig, hvorfor brugeren skulle få lyst til
> det, for vedkommende har allerede fået en bekræftelse på inputtet, men man
> ved jo aldrig, hvad brugere finder på

Sæt en sessionvariabel, når du sætter data i databasen.
Inden der indsættes data checker du så, om der allerede er sat en
sessionvariable. Hvis der er, skal der IKKE sættes noget i databasen.
Hvis der IKKE er sat en sessionvariabel, skal den sættes, og data
indsættes i databasen.

--
Benny


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste