Avatar billede udvikler Nybegynder
07. februar 2006 - 18:09 Der er 9 kommentarer og
1 løsning

sætte en limit til 3 gange om dagen

Jeg har lavet et script der gør at man kan få tilsendt sit kodeord via mail hvis man har glemt det. Dernæst vil jeg gerne have gjort sådan så man kun kan få det tilsendt 3 gange om dagen. Ellers kan folk jo bare spamme andres mail.. Jeg har registreret tidspunktet for 3. afsending.. så det burde ikke være svært overhovedet.. grunden til at jeg så spørger på eksperten er at jeg virkelig er tumlet oven i hovedet idag.. hehe
Avatar billede jackass- Nybegynder
07. februar 2006 - 18:57 #1
Hvis du logger hver afsendelse ud fra mailadresse/brugernavn, så kan du jo bare ved forsøg på at få kodeord tilsendt kontrollere, om det er sket mere end 3 gange eller ej..
Avatar billede udvikler Nybegynder
07. februar 2006 - 19:00 #2
Jamen når jeg siger 3 gange OM DAGEN. Så betyder det jo at det skal udløbe efter 24 timer. Så skal alle felter nulstilles og brugeren kan få sit kodeord tilsendt igen.

Det er det som jeg har problemer med. Hvordan kan man gøre sådan så det kun vare 24 timer?
- jeg har som sagt registreret tidspunktet på det 3. forsøg.
Avatar billede jackass- Nybegynder
07. februar 2006 - 19:02 #3
Som jeg ser det, skal det ikke udløbe efter 24 timer?

Du kontrollerer vel for en given dato, fx 07-02-2006 om der har været 3 forsøg eller ej, så der er som sådan ikke noget der skal nulstilles - udover at når vi når på den anden side af midnat, så tjekker den for 08-02-2006...?
Avatar billede udvikler Nybegynder
07. februar 2006 - 19:08 #4
Altså, prøv lige at hør. Jeg har registreret det tidspunkt som det 3. forsøg blev foretaget. Formatet er i Timer,Minutter,Sekunder (fx 18:29:51)

Hvordan kan jeg så finde ud af hvornår der er gået 24 timer?
Avatar billede jackass- Nybegynder
07. februar 2006 - 19:12 #5
Så må du lige smide noget kode herinde, for jeg kan absolut ikke se hvordan det er du forsøger at lave det uden at registrere dato også
Avatar billede udvikler Nybegynder
07. februar 2006 - 19:15 #6
Jamen jeg laver bare denne:

$tid = mysql_real_escape_string(date('H:i'));

mysql_query("UPDATE brugere SET `antal_sendt` = 'antal_sendt + 1', `tidspunkt` = '$tid' WHERE brugernavn = '".$user."'") or die(mysql_error());

men altså, som du siger kunne der være noget om at jeg burde registrere dato.
Avatar billede jackass- Nybegynder
07. februar 2006 - 19:26 #7
Jeg ville lave logningen i en seperat tabel, bare for overskuelighedens skyld, således:

Jeg ville vælge at logge det således i en tabel:

id| dato      | tid      | user  | email      | ip
-----------------------------------------------------------------
1 | 2006-02-07 | 18:29:51 | -aco- | aco@mail.dk | 123.123.123.123
2 | 2006-02-07 | 18:31:23 | -aco- | aco@mail.dk | 123.123.123.123
osv...

og så:

$dag = date("Y-m-d");
$result = mysql_query("SELECT COUNT(*) AS antal FROM logtable WHERE dato='$dag' AND user='$user'");
$row = mysql_fetch_assoc($result);
if ($row["antal"] >= 3) {
  echo "Du ka' glemme det makker!";
}
else {
  //send kodeord, og log det i tabellen
}
Avatar billede jackass- Nybegynder
07. februar 2006 - 19:28 #8
Så når vi når på den anden side af midnat, så har brugeren 3 forsøg igen for 2006-02-08..
Avatar billede udvikler Nybegynder
07. februar 2006 - 19:45 #9
Det vil jeg prøve så snart jeg kan.. bliv hængene lidt endnu :-)
Avatar billede udvikler Nybegynder
09. februar 2006 - 23:08 #10
Jeg har lavet det på en nemmere måde.. jeg har indsat en tæller som tæller fra 0 til 3 og indsætter en dato hver gang.. så hvis der er sendt 3 mails så tjekker jeg om dags dato er lig med "ban datoen".. hvis ikke så er alt ok.. hvis den er så er man banned..

Men dit svar er accepteret! ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester