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.
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 :-)