Avatar billede sirupsen Nybegynder
08. august 2006 - 11:21 Der er 5 kommentarer

Aktiver Brugeren Via En Mail.

Hej!
Jeg har godt gang i mit community, men tænkte på om når brugeren oprettede en bruger kunne han/hun få et aktiverings link til den mail han/hun har indtastet i feltet. I får lige det kode i skal bruge i min Opret.php:
<?php
$oprettet = date("Y-m/d H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
if($_POST['submit']){
include("connect.php");
$q1 = mysql_query("select * from brugere where brugernavn = '$_POST[brugernavn]'");
if(mysql_num_rows($q1) > "0"){
print "Brugernavnet er optaget!";
}else{
$adgangskode = md5($_POST['adgangskode']);
mysql_query("insert into brugere set brugernavn = '$_POST[brugernavn]', adgangskode = '$adgangskode', mail ='$_POST[email]', ip = '$ip', oprettet = '$oprettet'");
print "Du er nu oprettet som bruger, og kan logge ind!";
include("index.php");
exit();
}
}
?><br />
</p><form name="form1" method="post" action="">
  <p>Brugernavn:<br>
    <input name="brugernavn" id="submit" type="text">
    <br />
    Adgangskode:<br>
    <input name="adgangskode" id="submit" type="password">
    <br />
    Email:<br />
    <input name="email" id="submit" type="text" /><br />
    <input name="submit" type="submit" id="submit" value="Opret">
  </p>
  </form>
Avatar billede jakobdo Ekspert
08. august 2006 - 12:51 #1
Du kunne f.eks. lave et felt som hedder aktiveret.
Når du laver din INSERT, så sætter du aktiveret = 0.
Så sender du brugeren en email, hvor han så skal klikke på:
aktiver.php?email=navn@email.dk
Når det link klikkes, så sætter du aktiveret = 1
og så kører vi Carlos.
Avatar billede coderdk Praktikant
08. august 2006 - 13:18 #2
Den er så lidt nem at snyde, hvis man kender aktiver.php-URL'en :)
Man plejer at bruge en nøgle, det kan gøre sådan:

$key = md5( $_POST['brugernavn'] . 'hemmelig nøgle' );

og i mailen sender du en URL med: "aktiver.php?user=" . $_POST['brugernavn'] . '&key=' . $key;

i aktiver.php checker du blot:

if ( $_GET['key'] == md5( $_GET['user'] . 'hemmelig nøgle' ) )
{
  // Aktivér brugeren
}

Hvis det skal være endnu mere sikkert, så lav en tilfældig nøgle med md5/microtime og noget salt, og gem værdien i brugerens record, så skal de matche :)
Avatar billede nyhuus Nybegynder
08. august 2006 - 16:10 #3
som "key" bruger jeg selv bare emailen i md5 form, det fungere fint for mig :)
Avatar billede jakobdo Ekspert
08. august 2006 - 18:35 #4
Det er det jo så ikke noget hemmeligt i!
Så som coderdk siger, tilføj noget ekstra data.
Avatar billede coderdk Praktikant
31. oktober 2006 - 23:55 #5
Tid til at lukke?
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