webForumDet fria alternativet

Skapa en url som bara är giltig 24 timmar

PHP

3 svar · 458 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Hej,

Jag försöker lösa ett access problem genom att skicka ut ett email som innehåller en länk till en websida. När mottagaren klickar på länken och besöker websidan så ska besökarens ip nummer sparas i ett access filter vilket aktiverar en access som mottagaren har beställt.

Att fånga IP numret fungerar ju men hur får man till en någorlunda säker lösning där länken blir giltig i bara 24 timmar?

Sidan i sig kan naturligtvis vara unik men att den bara triggas om en viss parameter stämmer i URL.

Någon som har några förslag?

Medlem sedan sep. 2004828 inlägg
#2

lagra i databasen, ett datum (inkl tid) och ett unikt id.

när besökaren klickar på länken (som innehåller idt på något vis) gör du en kontroll mot databasen, och svarar med status 200, 403 eller 404 beroende på resultatet.

Har jag följt din aktivitet på forumet rätt så bör du lista ut en lösning med detta

Medlem sedan dec. 20051 056 inlägg
#3

Hej Stefan,

Så enkelt det kan vara ibland. Du fick mig att tänka åt rätt håll. Spank you `=)

Medlem sedan feb. 20034 441 inlägg
#4

Här har du lite mer hjälp (om du inte redan löst det):

SELECT 
user_id, user_auth_method 
FROM school_user 
WHERE user_key_1 = '<key_1>'
AND user_key_2 = '<key_2>'
AND CURRENT_TIMESTAMP() <= DATE_ADD(user_key_created, INTERVAL 1 DAY) 
LIMIT 1

Det är från ett script för att återställa lösenordet. Precis som Stefan beskriver så har jag ett fält där jag sparar tidpunkten för när "nycklarna" skapades. Raden hittas bara då "nycklarna" stämmer + att mindre än 24h passerats.

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)