Hallå, har gjort ett medlemssystem där användare kan registrera sig. För att få logga in så måste de klicka på en länk i sitt mail. Men jag vill även att man ska behöva klicka på länken inom två timmar, annars ska kontot raderas. Kan man lösa detta på något sätt?
Jag lägger ju till information om användaren i databasen när han registrerar sig, och ändrar en kolumn till 1 om användaren har aktiverat sig. Denna information vill jag ju också att försvinner om användaren inte har validerat sitt konto inom två timmar.
Vid registrering så lägger du till tiden i databasen.
Sen schemalägger du ett skript som körs med jämna mellanrum och raderar alla oaktiverade konton som är äldre än två timmar. (Schemaläggning eller Cron beroende av server)
okej, då får det bli ett cronjob.
Dock så undrar jag hur jag skriver när jag ska plusa på två timmar?
I min databas sparar jag informationen i DateTime, för att jag ville ha datumet då användaren registrerade sig också... Men som sagt finns det något smidigt sätt att lägga på två timmar? Hur skriver man det?
En enkel if sats om vi säger att variabeln $membersince har hämtat informationen från databasen och innehåller datumet och tiden i DateTime format.
En annan lösning skulle väl kunna vara att när användaren väl försöker validera sig (länkklick inom två timmar) så kan ju php lätt hämta ut registreringstiden ur databasen, och jämföra den med "nu" och där se om två timmar passerat eller ej.
En annan lösning skulle väl kunna vara att när användaren väl försöker validera sig (länkklick inom två timmar) så kan ju php lätt hämta ut registreringstiden ur databasen, och jämföra den med "nu" och där se om två timmar passerat eller ej.
Ja fast då kommer du inte åt de som inte validerar sitt konto.
Du kan även skapa events i mysql som agerar som cronjob. Istället för att schemalägga ett phpscript eller liknande kan du använda create event on schedule som går och rensar ur gamla poster.