Avatar billede tlunde Nybegynder
29. september 2005 - 09:18 Der er 16 kommentarer og
1 løsning

Kryptere valideringsoplysninger i mail?

Hejsa,
Jeg sidder og er ved at lave et stort community, hvor jeg sender et valideringslink med brugeroplysninger, som brugeren skal godkende. Et link kunne se sådan ud:

http://www.selvhjaelp.dk/login/aktiver_bruger.php?organisation=test&adresse=test&postnr=9000&bynavn=aalborg&tlf=1212&website=121&fornavn=1212&efternavn=121&brugernavn=tlunde&password=12&email=thomas@frise.dk&aktiver=ok

Alt dette vil jeg gerne have krypteret ned i noget ala md5 så det kunne se sådan her ud:

http://www.selvhjaelp.dk/login/aktiver_bruger.php?md5=werfw924524qerqe35

hvor alle brugeroplysningerne er krypteret ned. Det gør det også nemmere for brugeren at bruge linket, da det tit aldrig bliver et helt link, der kan trykkes på..

Eller så kunne man måske gemme det hele under et link, noget ala: "Klik her", hvor så det hele ligger gemt under linket...

Kan det lade sig gøre på en eller anden måde??
Avatar billede dmdisco Nybegynder
29. september 2005 - 09:27 #1
hvorfor gemmer du ikke bare bruger oplysningerne i en database og laver 2 ekstra felter et til om de er aktiv eller ej og et der indeholder en md5 hash eller noget
og så når de godkender sammenligner du den md5 i databasen med den de kommer med på linket

ellers kan du bruge base64_encode()/base64_decode()
http://dk.php.net/manual/da/function.base64-encode.php
Avatar billede net-base.dk Nybegynder
29. september 2005 - 09:56 #2
hvorfor laver du ikke en lille stump kode som spytter en ny kode til brugeren på 10 tegn&tal og sender den til brugeren i en mail, når brugeren har oprettet ser de et indtastningsfelt hvor den kode skal indtastes i,

Du kan etc i mailen også smide et link som de også kan trykke på
Avatar billede tlunde Nybegynder
29. september 2005 - 10:34 #3
dmdisco:
Kan ik lige se hvordan jeg skal koble det base64_encode() på de oplysninger som brugeren taster ind i formen??

Ang. det med md5, hvordan skal jeg så gemme det i databasen? Der bliver jo ik gemt noget i databasen, før brugeren har trykket på aktiveringslinket som bliver sendt ud til dem på mail...

Kan man evt. sende mailen ud i noget HTML format, så man kan gemme det lange aktiveringslink under: "Klik her"??
Avatar billede dmdisco Nybegynder
29. september 2005 - 12:09 #4
gem det i databasen eller lav en temp database hvor du gemmer det i til at starte med og når det så er valideret så flyt det over i den "rigtige" database
og så bare lav et tjek på om de er aktiv eller ej
hvis det er et problem med at folk opretter sig uden at aktivere sig kan du bare lave en funktion der rydder op en gang imellem hvor den sletter brugere der ikke er aktive endnu

mht HTML format på email så narer det jo kun dem der i forvejen ikke ville kunne finde ud af at ændre valideringsdataen
Avatar billede dmdisco Nybegynder
29. september 2005 - 12:11 #5
du skal jo også sikre dig at der ikke er 2 brugere der har det samme brugernavn derfor er det en god ide at gemme dataen først

med md5 hashen kan du eks hashe deres brugernavn
Avatar billede tlunde Nybegynder
29. september 2005 - 12:14 #6
dmdisco:
Er det noget du har et fungerende eksempel på?
Jeg kan godt at, at man kan gemme det i en temp database, men hvordan skal jeg sende en mail ud til brugeren, hvor der er md5 på brugernavn, og hvordan skal jeg tjekke om det passer med det der står i temp databasen?
Avatar billede dmdisco Nybegynder
29. september 2005 - 12:35 #7
du gemmer alt dataen i databasen og 2 ekstra felter det ene er feltet aktiv og det andet er key
aktiv sætter du til 'FALSE' og key sætter du til md5($brugernavn) (eller noget andet skal bare være en unik key)

din aktiverings mail skal bare indeholde et link som du selv skriver det
http://www.selvhjaelp.dk/login/aktiver_bruger.php?key=werfw924524qerqe35

så tjekker du bare
SELECT * FROM brugere WHERE key='$_GET[key]'
hvis den returnere 0 rækker så er der noget galt brugeren er ikke oprettet
hvis den returnere 1 række så laver du et tjek på om feltet aktiv står til TRUE eller FALSE hvis TRUE så er den allerede aktiveret, hvis FALSE så aktiver brugeren
UPDATE brugere SET aktiv='TRUE' WHERE key='$_get[key]'
Avatar billede tlunde Nybegynder
29. september 2005 - 13:36 #8
Okay, lyder mere fornuftigt...og key=werfw924524qerqe35 er lig md5 for brugernavnet ik?

Skal denne: SELECT * FROM brugere WHERE key='$_GET[key]' smides i en if sætning og tjekke om det siger 1 eller 0, før jeg kører UPDATE brugere SET aktiv='TRUE' WHERE key='$_get[key]'?
Avatar billede dmdisco Nybegynder
29. september 2005 - 13:53 #9
ja key skal bare være en unik nøgle i grunden kunne du bare bruge det ID nummer som du giver brugeren i databasen

ja lav hellere et tjek på hvor mange den returnere
brug mysql_num_rows($query)
Avatar billede tlunde Nybegynder
29. september 2005 - 14:49 #10
mener du så at i stedet for at sende en md5 kode ud, så bare sende brugerens id med ud? Eller er jeg helt forkert på den?
Avatar billede dmdisco Nybegynder
29. september 2005 - 15:42 #11
ja det kunne du godt men den er nok ikke særlig svær at knække hvis du vil undgå nogle der opretter flerer brugere hele tiden så det bedste ville være en hash af et eller andet måske brugernavn + timestamp en hash er ikke helt unik men burde ikke rende ind i et problem og hvis du vil være helt sikker så brug 2 variabler en med ID og en med en hash i
Avatar billede tlunde Nybegynder
29. september 2005 - 17:07 #12
Jeg prøver lige at kigge på det i morgen, ellers vender jeg lige tilbage...
Tak for hjælpen indtil videre...
Avatar billede leif Seniormester
30. september 2005 - 09:41 #13
Du fik ikke noget ud af http://exp.dk/spm/643864 ?
Avatar billede dmdisco Nybegynder
30. september 2005 - 09:53 #14
øhh leif hvad har det med noget af det her at gøre?
Avatar billede leif Seniormester
30. september 2005 - 10:01 #15
At han såden set fik løsningen på hans spørgsmål, men han vendte ikke tilbage om han havde problemer med at forstå det, men lukker bare og selv tager point.
Avatar billede dmdisco Nybegynder
03. oktober 2005 - 09:46 #16
sikkert fordi der intet svar var
Avatar billede leif Seniormester
03. oktober 2005 - 10:20 #17
Så kan man venligt anmode om et 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