Avatar billede crolesen Nybegynder
06. marts 2006 - 00:08 Der er 1 kommentar og
1 løsning

Godkend ny bruger

Jeg har et simpelt loginsystem.
Jeg vil gerne kunne godkende nye brugere før de kan gå ind på siden. Er der nogle der kan hjælpe mig med det???

Evt. noget i retning af at de skriver deres brugernavn og password, og så får jeg en mail, og kan derfra aktivere den, eller andetsteds.
Avatar billede webudvikleren Nybegynder
06. marts 2006 - 00:18 #1
1. I din mysql-tabel sæt følgende felter: aktiveringskode samt aktiv
2. Når en bruger opretter sig lav en aktiveringskode
  2.1
      <?php $i = mt_rand(100000,900000); $kode = md5 ( $i ); ?>
  2.2
      Indsæt "$kode" i feltet "aktiveringskode" samt aktiv til 0

3. Så laver du en som sender en e-mail med aktiveringslinket.
  3.1
    $headers .= "From: robot <robot@ditsite.dk>\n";
    $headers .= "Reply-to: " . $_POST[mail] . "\n";
    $headers .= "X-Sender: <robot@ditsite.dk>\n";
    $headers .= "X-Mailer: " . $_POST['mail'] . "\n";
    $headers .= "X-Priority: 3\n";
    $headers .= "Return-Path: <" . $_POST['mail'] . ">\n";

    $tekst = "Velkommen. Tryk her for at aktivere dig.";
    $tekst.= "<a href=\"link.php?kode=" . $kode ."\">her!</a>";

    mail("" . $_POST[mail] . "", "Aktiveringskode til ditsite.dk", $tekst."\n", $headers);

4. Når brugeren modtager emailen står aktiveringskode. Prøver brugeren at logge ind og ikke er aktiveret kan du:
  4.1
      <?php
      $tjek = mysql_query("SELECT aktiv FROM brugersystem WHERE brugernavn = '$_SESSION[usr]' AND aktiv = 1");
      if ( mysql_num_rows ( $tjek ) == 0)
      print "Du er ikke aktiveret!!"
      else
      print "velkommen du!";
      ?>
5. Når brugeren skal aktivere site kan du lave noget ala:
  5.1
      <?php
      $tjek = mysql_query("SELECT id,brugernavn FROM brugersystem WHERE aktiveringskode='$_GET[kode]'");
      $row = mysql_fetch_assoc($tjek);
      if (mysql_num_rows($tjek) == 0)
      mysql_query("UPDATE brugersystem SET aktiv = 1 WHERE brugernavn = '$row[brugernavn]'");
      else
      print "Du er allerede aktiveret!";
      ?>

    5.2
    Først tjekker vi om der findes en aktiveringskode som er $_GET[kode] (linket fx. domain.php?kode=87dsdsdhS8as87S(/Asa9))
   
    Så tjekker vi om den findes, gør den ikke, så skal den opdatere brugerens felt "aktiv" til ja, som er 1
   
    Hvis ikke, udskriver den en fejlmeddelse.


- Håber du kan komme videre. Der kan være fejl, men det kan du vel rette :-)
Avatar billede crolesen Nybegynder
23. april 2007 - 20:23 #2
bhjk
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