Avatar billede gedekid Nybegynder
20. juni 2007 - 10:49 Der er 7 kommentarer og
1 løsning

max request

Hej eksperter,

jeg sidder og døjer lidt med et script der skal sikre at en bruger ikke laver mere end 2 pris forespørgsler af gangen. Ved nummer 3 må han vente eks. 15 minutter.
Det jeg har nu er lavet via database hvor hvert request bliver indsat i databasen med IP, tid nu, tid om 15 minutter. Synes ikke helt det virker som det skal.

Kan det laves på en anden, simplere/nemmere måde eks. med en SESSION der dør efter noget tid. Hvordan vil et sådan eksempel se ud?
Avatar billede henriktha Nybegynder
20. juni 2007 - 10:59 #1
Du kunne jo feks sætte en cookie

setcookie("CookieNavn", $værdi, time()+3600);

if (isset($_COOKIE['CookieNavn']))
{
//Tillad handling
}
else
{
//Tillad ikke handling
}

3600 sekunder = 1 Time (60 Minutter * 60 Sekunder)
Dvs at 15 minutter er 900 Sekunder ;-)
Avatar billede gedekid Nybegynder
20. juni 2007 - 11:01 #2
Det lyder som en meget god løsning, men vil den ikke være afhængig af at brugeren har sat cookies til?
Avatar billede henriktha Nybegynder
20. juni 2007 - 11:03 #3
Det kan der være noget om, men det ses ofte i webshops og lign at cookies skal være slået til.

Jeg har feks. også altid haft problemer med sessions når cookies er slået fra, om det er en fejl fra min side skal jeg dog ikke kunne sige..
Avatar billede henriktha Nybegynder
20. juni 2007 - 11:06 #4
Ellers er det jo noget med:
<?
session_start();

$_SESSION['tid'] = time()+900;

if ($tid > time()) {
Du kan forespørge igen
}
Else..... osv
Avatar billede zurekk Nybegynder
20. juni 2007 - 12:10 #5
henriktha >
Du mener $_SESSION['tid'] < time()

Og sessions bliver slettet når man lukker sit vindue(så vidt jeg husker), så det er ikke særligt sikkert.

Cookies, kan man vel også bare slette.

Det sikreste vil nok være at bruge databasen, kan ikke se hvad der skulle være i vejen med det, udover lidt ekstra trafik.
Avatar billede gedekid Nybegynder
20. juni 2007 - 12:12 #6
Jeg tror jeg benytter mig af løsningen med cookies! Den virker ret godt! Kan man samtidig tjekke efter om cookies er sat til og hvis ikke så får man en besked om at det skal være sat til?

Du får point for svar :)
Avatar billede henriktha Nybegynder
20. juni 2007 - 16:54 #7
Jeg ville her bruge en javascript funktion som ikke skal bruge side reload for at virke:

Denne kode skulle kunne gøre tricket:

<script>
if (navigator.cookieEnabled) {
window.alert("Cookies er slået fra i din browser\nAktiver cookies og prøv igen");
}
</script>
Avatar billede henriktha Nybegynder
20. juni 2007 - 16:55 #8
Der skulle så have været en NOT statement så sådan her:

if (!navigator.cookieEnabled) { // ! = IKKE
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