Avatar billede nicocarlos Nybegynder
29. oktober 2003 - 14:31 Der er 14 kommentarer og
1 løsning

Log ip addresen?

Hej jeg er ved at lave et script så folk kan oprette nyheder, men jeg vil ikke have at de kan oprette hele tiden, så jeg vil smide deres ip i en MySQL database i 30 min. Hvorefter den skal slettes og brugeren kan komme ind på submit siden igen. Nogen der kan hjælpe med dette?
Avatar billede grunken Nybegynder
29. oktober 2003 - 14:37 #1
er det ikke smartere at bare lave det vha. af en cookie ?

ovenstående lyder som lidt overkill!
Avatar billede nicocarlos Nybegynder
29. oktober 2003 - 14:40 #2
jamen brugeren kan jo bare slette sine cookies og så skrive igen, ikke?
Avatar billede riversen Nybegynder
29. oktober 2003 - 14:42 #3
hvad er det præcist du er i tvivl om?
Avatar billede sukos Juniormester
29. oktober 2003 - 14:44 #4
$ip = $_SERVER["REMOTE_ADDR"];
Tager jo så ikke højde for proxies m.m.
Avatar billede nicocarlos Nybegynder
29. oktober 2003 - 14:46 #5
Jeg vil bare gerne have at brugeren ikke kan add flere nyheder i 30 min, er sådan set ligeglad hvordan det bliver gjort, bare det bliver gjort, men jeg ved ikke hvordan jeg skal gøre det :D
Avatar billede erikjacobsen Ekspert
29. oktober 2003 - 14:57 #6
Du blokerer IP-adressen i 30 minutter (når det virker), ikke en bruger

1) Dem der ringer op med modem, får typisk en ny IP-adresse, og kan gøre det igen med det samme
2) Dem der sidder bag et fælles IP-nummer kan ikke i 30 minutter, blot en anden har gjort det

...men selvfølgelig er det teknisk muligt.
Avatar billede nicocarlos Nybegynder
29. oktober 2003 - 14:59 #7
Kan jeg ikke bare give dem en simpel cookie når de submiter en nyhed??
Avatar billede -xyz- Nybegynder
29. oktober 2003 - 15:08 #8
jow, det kan du sagtens
setcookie("cookie", 30 min block, time()+1800);

så skal du bare kalde den...
if ($_COOKIE['cookie'] == "30 min block"){
echo "du skal vente 30 min. siden sidste nyhed}
Avatar billede -xyz- Nybegynder
29. oktober 2003 - 15:08 #9
if ($_COOKIE['cookie'] == "30 min block"){
echo "du skal vente 30 min. siden sidste nyhed";}

havde lige lidt for travlt
Avatar billede nicocarlos Nybegynder
29. oktober 2003 - 15:15 #10
<?
if ($_COOKIE['cookie'] == "30 min block"){
echo "du skal vente 30 min. siden sidste nyhed";}

setcookie("cookie", 30 min block, time()+1800);
?>

er det ok?
Avatar billede nicocarlos Nybegynder
29. oktober 2003 - 16:01 #11
Parse error: parse error, unexpected T_STRING:
setcookie("cookie", 30 min block, time()+1800); hvad er der galt?
Avatar billede erikjacobsen Ekspert
29. oktober 2003 - 17:43 #12
Ja, undskyld jeg blander mig igen. Jeg slår rutinemæssigt cookies fra.
Så jeg kan lave så mange indlæg jeg vil.

Det du vil er formelt umuligt - du skal vælge hvilken mulighed der gør
mindst "ondt" på dig.
Avatar billede erikjacobsen Ekspert
29. oktober 2003 - 17:43 #13
setcookie("cookie", "30 min block", time()+1800);

skulle klare dit syntaksproblem
Avatar billede schaefner Juniormester
29. oktober 2003 - 17:45 #14
<?php
if (isset($_COOKIE['cookie'])){
  echo 'du skal vente 30 min. siden sidste nyhed';
}

setcookie('cookie','1',time()+1800);
?>
Avatar billede skwat Praktikant
29. oktober 2003 - 17:47 #15
Jeg vil sige du skal lave et login system således du afholder en bestemt bruger.
Naturligvis kan folk bare oprette flere bruger, men hvor om alt er, er det bare et spørgsmål om at gøre det besværligt :)
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