Avatar billede stieper Nybegynder
18. juli 2006 - 18:30 Der er 4 kommentarer og
2 løsninger

Script til vurdering af billede (afstemning)

Jeg er ved at oprette et lille galleri, hvor man kan stemme på billeder.

Jeg har session-motoren helt kørt op, så jeg via login kan kontrollere om folk allerede har stemt på et billede osv.

Afstemningen/karakteren på billedet gives ved at trykke på en grafisk bar (et jpg med "usemap") - hvert felt (1-10) skal redirecte til en url hvor man kan opdatere databasen med den pågældende stemme.


Hvad jeg mangler er et script der gør, at brugerne ikke kan se hvilken url de bliver redirected til. Dette skal gøres af sikkerhedshensyn for at undgå "hacking-forsøg" og lign.

Strukturen er som følger:

1. Brugeren klikker på afstemningsbaren og bliver sendt til en ny url (stem.php)
2. Databasen opdateres
3. Brugeren sendes tilbage til siden hvor han/hun stemte fra.

Jeg benytter php "Header" til mit redirect fra stem.php, hvilket gerne skulle gå så hurtigt at brugeren ikke opdager at han har været på en anden side ;-)

Kan det lade sig gøre at "skjule" sine links på afstemningsbaren, eller hvordan laves dette system??
Avatar billede hmortensen Nybegynder
18. juli 2006 - 18:37 #1
Jeg kan ikke se problemet i at man kan se linket (og det kan ikke skjules helt, browseren skal jo vide hvor den skal hen), så længe din databehnalding tar højde for at man er logget ind, og at man ikke har stemt på det aktuelle billede endnu.
Avatar billede stieper Nybegynder
18. juli 2006 - 18:45 #2
Problemet er, at jeg ikke bruger $_POST[] eller $_GET[], da man jo skal trykke på et billede.

Derfor er jeg (indtil videre) nødsaget til at lave hvert link som "stem.php?id=2&userid=3&vote=10"
Og så kan jeg jo ikke tjekke om folk tilgår "stem.php" via tryk på "submit"-knappen.

Men det går da op for mig, at jeg også kan lægge en login-tjek-funktion i stem.php, hvor jeg ligeledes tjekker om personen allerede har stemt på det pågældende billede - hvis dette er tilfældet redirecter jeg bare udenom database-opdateringen, og hvis folk ikke er logget ind må det jo være et "hacking-forsøg" ;-)

Hvis folk så vælger at være logget ind, og manuelt indtaste adressen stem.php?id=4...
så må de jo selv om det, så bruger de jo bare deres stemmer på den måde..

Det jeg tænkte var om man ikke kan lave det på en smartere måde - evt. med sessions eller med javascript??
Avatar billede flashbordon Nybegynder
20. juli 2006 - 11:33 #3
du behøver strengt taget ikke at tjekke at folk er logget ind på stem.php

Istedet for at videregive userid i url'en "stem.php?id=2&userid=3&vote=10"
så sæt $_SESSION['userid'] og tjek brug den istedet for $_GET['userid'] på stem.php siden.
Blot husk at kører session_start() i starten af stem.php
Avatar billede stieper Nybegynder
22. juli 2006 - 16:59 #4
Har brugt den løsning jeg selv skrev tidligere, hvor jeg tjekker for login osv. i stem.php

Der er allerede i mit system session-variabler som jeg har benyttet til yderligere kontrol.

Så jeg er villig til at acceptere begge kommentarer som svar, hvis i vil dele points.
Avatar billede flashbordon Nybegynder
02. august 2006 - 22:11 #5
cool med mig :)

-flash
Avatar billede hmortensen Nybegynder
02. august 2006 - 22:20 #6
Svar.
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