26. februar 2003 - 09:12Der er
37 kommentarer og 2 løsninger
Kun 1 add pr dag....
Et script der sørger for at den samme computer kun kan tilføje noget til MySQL 1 gang dagligt...
Skal bruges til et system hvor en bruger sender en mail ud med et link f.eks. www.domæne.dk/ref=$bruger Når modtageren så klikker på linket skal der lægges 1 point oveni $bruger's hits i MySQL
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
if ($cookie == $tid) { echo"Du kan ikke gøre _DETTE_ mere i dag"; } else { setcookie ("cookie", $tid,time()+ 60 * 60 * 24); echo"Du kan godt gøre _DETTE_ i dag"; } ?>
Men til det system, som du skal bruge sikringen til, vil jeg anbefale at sikre at selve det brugernavn kun kan gøre det en gang pr. dag. Dette kan opsættes i ved at lave en row mere i din mysql (hvis det er denne form for database du bruger) og deri tjekke den nuværende dato med den dato som står i databasen. På den måde sikre du dig at brugernavnet kun får pointet en gang pr. dag... og ikke igennem flere IPs eller PCer.
Til hjælp af det kan du lave en sammensætning af min kodning og den kodning dmdisco har skrevet.
Glemte at skrive til min overnævnte kode at den ikke tjekker om det er 24 timer siden brugeren sidst har gjort det. Istedet tjekker den om datoen er anderledes end sidst brugeren trykkede på denne PC. Dvs. den tjekker pr. dato. Fx. Datoen i går var, efter min kodning 030225 (den som ligger i cookie) I dag er datoen 030226.
Hvis datoen i min cookie var identisk med den i dag ville den skrive at man ikke kunne gøre noget. Ellers ville den lade brugeren udføre resten af kodningen.
Dette mener jeg er den bedste og mest stabile løsning. Men overvej at tjekke _KUN_ på brugernavn og ikke IP eller cookie ! Meget mere sikkert !
så scriptet skal sikre sig at cookien findes og at datoen ikke en den samme som pågældende dag...
sådan:
Hvis cookie ikke findes: opret cookie Læs cookie; hvis dag = idag: "Du har allerede gjort dette idag..." Ellers (hvis cookie findes): Add 1 hit til MySQL
dumazz >> Jf min kommentar 26/02-2003 09:20:22: "Husk at checke for cookies inden du kører funktionen"
I starten af dokumentet sætter du en cookie setcookie('testcookie') Lige bagefter checker du om den er sat. Hvis den er, er cookies slået til: "Cookies virker, fortsæt" Hvis den IKKE er, er cookies IKKE slået til: "Du bedes venligst tillade cookies"
... men en anden ting dumazz... Hvis du ønsker at lave sådan et "spil" som alle ved vil blive spammet rundt på nettet burde du måske vide mere om kodning når du ønsker så meget sikkerhed.
Sikkerhed er ikke svært at lave - faktisk noget af det mest enkelte i PHP, gælder bare om at bruge din sunde fornuft !
... forresten, hvorfor er det i fortsætter med at debattere??? Der er kommet flere forslag til at "sikre snyden" ved hjælp af cookies.
Forskellen på dem er bare om der går 24 timer fra sidste hit indtil de må "hitte" igen. eller om den kigger efter dato. Så vidt jeg kan se er min den eneste der kigger efter dato og ikke de 24 timer.
såvidt jeg kan se har han fået en kode 3 gange, alle kan bruges, men fortsætter.
Jeg kom skam bare med et videre indlæg til mit forrige svar ;) Men håber han vælger at kører det over IP - ellers vil han lave systemet MEGET usikkert hvad angår "snyd".
//Henter bruger-informationer $hent_bruger = mysql_query("SELECT id,hits FROM brugere WHERE bruger='$bruger'"); $skriv_bruger = mysql_fetch_array($hent_bruger);
//Finder IP på den besøgende $ip = $GLOBALS['REMOTE_ADDR']; $fip = $GLOBALS['HTTP_X_FORWARDED_FOR']; if (($fip != "") && ($fip != "unknown")) $ip = $fip; $ip = explode(",", $ip); $ip = $ip[0];
//Laver en mysql-query til at hente alle informationer som passer med IP OG brugerid $tjek_ip = mysql_query("SELECT ip FROM ip WHERE ip='$ip' && brugerid='$skriv_bruger[id]'");
//Tjekker om den ovenstående query har nogle resultater //Hvis ikke skal den skrive det. Eller skal den ikke skrive det.
Dumazz: Jeg regnede med at du kunne lidt PHP, nu når du ønsker at lave et sådan system. Hvis du kigger min kode igennem kan du nemt se hvor du skal indsætte den kode, som smider brugerens IP ind i databasen.
Så vidt jeg kan se, ønsker du jo nærmest at få 100% kode fra os. Eksperten.dk bruges ikke til at give koder ud, men til at få hjælp til hvordan man koder det. Det syntes jeg, at du har fået. Du har fået en del forslag til hvordan du kan tjekke det. Nu må du bare bruge det PHP og MySQL som du kan for at lave dit script sådan det tilpasses dig!
dumazz: Jo, den første linie er nok. Men tager du de sidste linier med, er du sikker på at få IPet. Disse linier tjekker nemlig at IPet ikke gemmes bag en adresse (ka ikke helt huske hvad det hedder!).
schaefner, dette har vi nævnt i en af de tidligere kommentar. Spørgsmålet er egentlig besvaret en 3 - 4 gange og kan ikke se hvorfor dumazz udvider spørgsmålet hele tiden.
En kombination af de koder vi lavede omhandlende cookies og så den stump php/mysql kode jeg gav dig, dumazz, så burde du nemt kunne fastlægge en kode at få dit system til at kører med for at få en optimal sikkerhed.
dumazz: Dette problem gør nu nemt ved at lave et dato-felt sammen med hver IP. Så henter du datoen ud, og tjekker den, ligesom vi gjorde ved det cookie-script jeg vedlagde længere oppe!
I må undskylde jeg først svarer nu... men jeg kan ikke se hvilke spm jeg har stillet, og skal bruge søge boxen for at finde dem...
Synes godt om
Ny brugerNybegynder
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.