Avatar billede mlj-foto Nybegynder
20. september 2011 - 16:23 Der er 8 kommentarer og
1 løsning

Hjælp.. hvordan undgår man at folk kan ændre

Hej Alle sammen.

Jeg er hoppy fotograf, og sider og arbejder på at lave et system hvor jeg kan sende en kontrakt afsted til en model efter hun har oprettet sig på min side.

Det hele fungere fint, men jeg har nu set en lille fejl

modellen for en model hvor der står de skal gå ind på kontrakt.php?id=xxxxx med hendes model nr.
det virker perfekt)

Men som en lige gjorde mig opmærksom på, så når man kommer over på siden, kan man blot ændre xxxxx også for man vist en andens kontrakt.

hvordan undgår man dette lettest?

mvh
Martin - www.mlj-foto.dk
Avatar billede michael_stim Ekspert
20. september 2011 - 16:36 #1
Er der ikke noget login eller noget, så bliver det svært. Der er nok ingen sikrer metoder med bare links. Du kan lave id'et langt og blande tal og bogstaver (store og små), f ex.
Avatar billede mlj-foto Nybegynder
20. september 2011 - 16:38 #2
Jeg kan selvfølgelig lave det sådan at de i mailen for et password de skal bruge.

Men det havde været fedt hvis man kunne lave et check.

Kan man lave noget med sessions, hvor man evt registrer den side man er kommet ind på, og så laver man noget med om sessions eller en cookie er sat?
Avatar billede michael_stim Ekspert
20. september 2011 - 16:39 #3
Er der login, så sætter du en session, hvor det kun er den person med hendes session der har rettigheder til at se id xxxxx.
Avatar billede mlj-foto Nybegynder
20. september 2011 - 16:41 #4
Der er ikke noget login lige nu.

Planen var at gøre det så simpelt som muligt, sådan at de blot skulle trykke på et link.
Men tænker man kan vel lave noget session check når siden loader første gang.. er session sat, så skal den lave noget exit. hvis session ikke er sat, skal den fortsætte??

i just suck at sessions.:)
Avatar billede heinzdmx Nybegynder
20. september 2011 - 17:01 #5
Du vil jo ikke vide om du skal sætte session eller ej.

Hvis du ikke vil lave login system, så skal du ud i at lave et id med en længere tekststreng af både bogstaver og tal.

Eller også så lave så der bliver sendt password ud via mail, det er også en forholdvis simpel måde at gøre det på.
Avatar billede pstidsen Novice
20. september 2011 - 18:20 #6
kontrakt.php?id=abcdef1ghij2klmn3opq4rstuv5wxy6zæ7øå8 ??
Avatar billede coderdk Praktikant
20. september 2011 - 23:51 #7
den nemme måde:

kontrakt.php?id=1234&hash=a4e34518afc3efa228f9021eea31983fe32a1290

og så checke om id og hash passer sammen, hash genererer du som sådan:

$id = 1234;
$salt = "En hemmelig kode du kender";
$hash = sha1( sha1( $id ) . $salt );
Avatar billede mlj-foto Nybegynder
21. september 2011 - 16:39 #8
Jeg har valgt at lave det sådan så jeg genere et "uniktid" som bliver skrevet med ind i databasen.

Jeg laver så et tjek om id samt unik id passer sammen.
Avatar billede mlj-foto Nybegynder
26. september 2011 - 12:55 #9
function createID($length) {
            $chars = "1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            $i = 0;
            $unikid = "";
            while ($i <= $length)
                {
                $password .= $chars{mt_rand(0,strlen($chars))};
                $i++;
                }
            return $password;
        }

        $unikid = createID(8);
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