Avatar billede tlunde Nybegynder
02. september 2005 - 11:47 Der er 2 kommentarer og
1 løsning

md5 kode på email?

Hejsa,
Jeg har lavet et system, hvor man udfylder nogle felter i en form, og disse felter bliver så sendt til en email adresse, hvor de skal godkendes i et link, inden de bliver sat ind i databasen.

Linket i aktiverings emialen kunne se sådan her 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


Mit spørgsmål er så, kan man ik smide noget md5 kode ind, så man ik selv gennem linket kan oprette en bruger?

Forstår i?

Mvh.
Thomas
Avatar billede coderdk Praktikant
02. september 2005 - 16:13 #1
Sagtens, du kunne f.eks. gøre sådan:

Du kunne tage postnr, tlf og fornavn, og lave en md5sum med noget salt:
$salt = 'Dette er hemmeligt!';
$chksum = md5( md5( $postnr . $tlf . $fornavn ) . $salt );

og tilføje denne til enden af dit link.

På siden som modtager gør du så bare:

$salt = 'Dette er hemmeligt!';
if ( $_GET['chksum'] != md5( md5( $_GET['postnr'] . $_GET['tlf'] . $_GET['fornavn'] ) . $salt ) )
{
  die( 'Stop lige en halv, makker!' );
}
Avatar billede tlunde Nybegynder
02. september 2005 - 16:47 #2
coderdk:
Jeg forstår ik helt dit eksempel.
Lige nu, har jeg en fil, der indeholder en masse if sætninger, der tjekker om felterne i formen er udfyldte. Hvis alle if sætninger er opfyldt, så sendes der en mail med oplysningerne fra formen. Det er disse oplysninger der resulterer i det laaaange aktiveringslink...

Hvordan får jeg alle de oplysninger ned i en md5 kode, så linket bliver krypteret? Og når der trykkes på linket i mailen, bliver man sendt videre til filen aktiver_bruger.php og her skal oplysningerne så indsættes i databasen...

Forstår du mig nu?
Avatar billede coderdk Praktikant
02. september 2005 - 17:04 #3
Ja, du kan ikke som sådan kryptere det, ikke med md5 i hvert tilfælde - Det er jo en-vejs. Du kan gøre som jeg skriver, og tilføje en ny parameter til den eksisterende URL - Denne bygges som jeg beskriver. Du kan evt. tage flere felter med i "valideringen/opbygningen" med.
Jeg ville nu gøre det på en anden måde - Jeg ville skrive data i databasen og markere brugeren som "ikke-aktiveret", og bare aktivere med en MD5-sum og brugerid sådan:

$salt = "Dette er hemmeligt!";
// Indsæt brugeren og få brugerid tilbage med mysql_insert_id()
$checksum = md5( md5( $row['brugerid'] ) . $salt );

Så skal aktiveringslinket bare se sådan ud:

http://www.selvhjaelp.dk/login/aktiver_bruger.php?id=1234&checksum=ba352acae7a4b3532fb4f9ca26f79bbd

På aktiver_bruger.php skal du så blot have:

$salt = "Dette er hemmeligt!";
if ( $_GET['checksum'] != md5( md5( $_GET['id'] ) . $salt ) )
{
  die( 'Checksum passer ikke.' );
}
// Aktiver brugeren her...

Så skal du blot en gang imellem lige slette alle ikke-aktiverede brugere, som ikke er aktiveret efter, tjah, 1 uge måske.
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