20. april 2003 - 11:19Der er
41 kommentarer og 2 løsninger
Bekræftelse af bruger
Hej eksperter.
Jeg har et brugersystem, hvor man selvfølgelig kan oprette en bruger og derefter logge ind osv. Jeg har fået sat en glem password funktion, og gem login oplysninger med cookie funktion. Så det køre næsten derud af.
Når man opretter sig som bruger bliver der sendt en email med ens login oplysninger. Altså dem man selv valgte. Jeg kunne nu godt tænke mig, at man skal i emailen trykke på et link, og bekræfte sin oprettelse.
Mit problem er så, at jeg ikke helt ved hvordan jeg skal gribe dette an. Nogen der har en god ide ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
well .. brugeren bliver jo også smidt i DBén, med brugernavn, email og password, og godkend er sat til 0. Så den har jo også et id. Problemet er at jeg ikke aner hvordan jeg får det rigtige id sendt til brugeren. Du kan lige se det kode jeg har strikket sammen, hvis det ville hjælpe lidt :)
$check = mysql_query("SELECT brugernavn,id FROM users where brugernavn='$_POST[brugernavn]'") or die (mysql_error());
if(mysql_num_rows($check) != 0) { include("head.txt"); echo "Desværre, der findes allerede en bruger ved navn <b> $brugernavn </b>.<br><br>Du er derfor nød til at vælge et andet brugernavn. <br><br>Tilbage til oprettelsen <a href=\"opret_bruger.php\">her</a>"; include("bottom.txt"); exit; }
else { mysql_query("insert into users (brugernavn,password,email,godkend) values ('$brugernavn','$password','$email','$godkend')");
$emne .= "Brugeroprettelse"; $body .= "Velkommen som bruger \n \n Du har følgende oplysninger \n \n Brugernavn: $brugernavn \n Password: $password \n \n \n \n Du skal blot bekræfte at dette er din email ved at trykke på linket nedenfor, og derefter kan du logge ind \n http://www.cypermann.homeip.net/test/index.php?godkend=1&id=$id \n \n Rigtig god fornøjelse."; mail("$email", $emne, $body) ;
include("head.txt"); echo "Du er nu oprettet som bruger med brugernavnet <b> $brugernavn </b> <BR>Der er blevet sendt en email til dig med dine login oplysninger, så du ikke glemmer dem.<BR><BR>Du kan logge ind fra menuen til venstre."; include("bottom.txt"); exit; } ?>
Synes godt om
Slettet bruger
20. april 2003 - 12:29#18
det ,id i starten skal du blot se bort fra.. Var lige mig selv der forsøgte at få den til at hente idét
$check = mysql_query("SELECT brugernavn,id FROM users where brugernavn='$_POST[brugernavn]'") or die (mysql_error());
if(mysql_num_rows($check) != 0) { include("head.txt"); echo "Desværre, der findes allerede en bruger ved navn <b> $brugernavn </b>.<br><br>Du er derfor nød til at vælge et andet brugernavn. <br><br>Tilbage til oprettelsen <a href=\"opret_bruger.php\">her</a>"; include("bottom.txt"); exit; }
else { mysql_query("insert into users (brugernavn,password,email,godkend) values ('$brugernavn','$password','$email','$godkend')");
$hent_id = mysql_query("SELECT * FROM users WHERE id = '$id_fra_cookie'"); while ($hentet_id = mysql_fetch_array($hent_id)){ $hentet_id_nr = $hentet_id["id"]; }
$emne .= "Brugeroprettelse"; $body .= "Velkommen som bruger \n \n Du har følgende oplysninger \n \n Brugernavn: $brugernavn \n Password: $password \n \n \n \n Du skal blot bekræfte at dette er din email ved at trykke på linket nedenfor, og derefter kan du logge ind \n http://www.cypermann.homeip.net/test/index.php?godkend=1&id=$hentet_id_nr \n \n Rigtig god fornøjelse."; mail("$email", $emne, $body) ;
include("head.txt"); echo "Du er nu oprettet som bruger med brugernavnet <b> $brugernavn </b> <BR>Der er blevet sendt en email til dig med dine login oplysninger, så du ikke glemmer dem.<BR><BR>Du kan logge ind fra menuen til venstre."; include("bottom.txt"); exit; } ?>
Det er jo nødvendigt, med noget der siger hvem der er på - derfor bør du sætte en cookie med værdien af id'en - så har du styr på brugeren...
Synes godt om
Slettet bruger
20. april 2003 - 12:47#21
hmm... jeg har det sådan at når man logger ind kan man sætte en cookie med "gem login oplysninger". Men det er jo bare en cookie der gemmer de indtastede oplysninger.
Men en cookie der henter fra databasen har jeg ikke meget forstand på. SQL er temlig nyt for mig. Men jeg skal vel bare sætte noget ind som dette:
$check = mysql_query("SELECT brugernavn,id FROM users where brugernavn='$_POST[brugernavn]'") or die (mysql_error());
if(mysql_num_rows($check) != 0) { include("head.txt"); echo "Desværre, der findes allerede en bruger ved navn <b> $brugernavn </b>.<br><br>Du er derfor nød til at vælge et andet brugernavn. <br><br>Tilbage til oprettelsen <a href=\"opret_bruger.php\">her</a>"; include("bottom.txt"); exit; }
else { mysql_query("insert into users (brugernavn,password,email,godkend) values ('$brugernavn','$password','$email','$godkend')"); $hent_id_cookie = mysql_query("SELECT * FROM users ORDER BY id DESC LIMIT 1"); while ($hentet_id_cookie = mysql_fetch_array($hent_id_cookie)){ $id_nu = $hentet_id_cookie["id"]; setcookie("id_fra_cookie","$id_nu",time()+3600); }
$hent_id = mysql_query("SELECT * FROM users WHERE id = '$id_fra_cookie'"); while ($hentet_id = mysql_fetch_array($hent_id)){ $hentet_id_nr = $hentet_id["id"]; }
$emne .= "Brugeroprettelse"; $body .= "Velkommen som bruger \n \n Du har følgende oplysninger \n \n Brugernavn: $brugernavn \n Password: $password \n \n \n \n Du skal blot bekræfte at dette er din email ved at trykke på linket nedenfor, og derefter kan du logge ind \n http://www.cypermann.homeip.net/test/index.php?godkend=1&id=$hentet_id_nr \n \n Rigtig god fornøjelse."; mail("$email", $emne, $body) ;
include("head.txt"); echo "Du er nu oprettet som bruger med brugernavnet <b> $brugernavn </b> <BR>Der er blevet sendt en email til dig med dine login oplysninger, så du ikke glemmer dem.<BR><BR>Du kan logge ind fra menuen til venstre."; include("bottom.txt"); exit; } ?>
$check = mysql_query("SELECT brugernavn,id FROM users where brugernavn='$_POST[brugernavn]'") or die (mysql_error());
if(mysql_num_rows($check) != 0) { include("head.txt"); echo "Desværre, der findes allerede en bruger ved navn <b> $brugernavn </b>.<br><br>Du er derfor nød til at vælge et andet brugernavn. <br><br>Tilbage til oprettelsen <a href=\"opret_bruger.php\">her</a>"; include("bottom.txt"); exit; }
else { mysql_query("insert into users (brugernavn,password,email,godkend) values ('$brugernavn','$password','$email','$godkend')"); $hent_id_cookie = mysql_query("SELECT * FROM users ORDER BY 'id' DESC LIMIT 1"); while ($hentet_id_cookie = mysql_fetch_array($hent_id_cookie)){ $id_nu = $hentet_id_cookie["id"]; setcookie("id_fra_cookie","$id_nu",time()+3600); }
$hent_id = mysql_query("SELECT * FROM users WHERE id = '$id_fra_cookie'"); while ($hentet_id = mysql_fetch_array($hent_id)){ $hentet_id_nr = $hentet_id["id"]; }
$emne .= "Brugeroprettelse"; $body .= "Velkommen som bruger \n \n Du har følgende oplysninger \n \n Brugernavn: $brugernavn \n Password: $password \n \n \n \n Du skal blot bekræfte at dette er din email ved at trykke på linket nedenfor, og derefter kan du logge ind \n http://www.cypermann.homeip.net/test/index.php?godkend=1&id=$hentet_id_nr \n \n Rigtig god fornøjelse."; mail("$email", $emne, $body) ;
include("head.txt"); echo "Du er nu oprettet som bruger med brugernavnet <b> $brugernavn </b> <BR>Der er blevet sendt en email til dig med dine login oplysninger, så du ikke glemmer dem.<BR><BR>Du kan logge ind fra menuen til venstre."; include("bottom.txt"); exit; } ?>
Synes godt om
Slettet bruger
20. april 2003 - 13:23#26
hehe .. okay nu skete der noget. Der er blot en enkelt ting. Jeg har nu 3 brugere i databasen. så der er altså et ID=1 ID=2 ID=3
Jeg tilmeldte lige den sidste for at prøve den nye kode. Og nu kommer der et id på i emailen .. det var bare ID=2 :/
Har du så et script som tjekker om bruger og aktiverings koden hænger sammen altså du laver et where brugernavn = $brugernavn
Der efter tjekker den så op
if($activationid == $row['akti_kode']) { #Her skal også være et statement der går ind i mysql og retter fæltet godkendt til 1 og husk i login del skal den tjekke om godkent er sat til 0 ellers kan en ikke aktiveret konto logge ind... echo "Din konto er aktiveret"; }else{ echo "Din konto er ikke aktiveret"; }
Lyder lidt rodet men er også skrevet ret hurtigt
Synes godt om
Slettet bruger
20. april 2003 - 13:32#29
mjl -> desværre, nu gik der helt koks i det. Nu er det bare ID=1 der den får ved alle brugere :/ .. tilmeldte 2 nye for lige at tjekke, men begge havde ID=1
benzon -> Tror jeg bliver ved mjl´s løsning, da den jo næsten er der, for når jeg trykker på linket fungere det udemærket, det eneste jeg mangler er altså bare at få den til at angive det korrekte ID hver gang.
Har lige gæster - men det er sidste ID, der skal hentes - derfor prøvede jeg med DESC først...
Synes godt om
Slettet bruger
20. april 2003 - 14:34#31
jamen når den nu bare var et id bagude .. kan man så ikke bare få den til at ligge en til ?
Synes godt om
Slettet bruger
20. april 2003 - 14:49#32
Jeg ligger gerne flere points i spørgsmålet, hvis en kan komme med løsningen på hvordan jeg får den til at komme med det korrekte ID.
Synes godt om
Slettet bruger
20. april 2003 - 17:26#33
Jeg har nu sat lidt flere points af i håb om en eller anden kan komme med en løsning på hvordan jeg får den til at udskrive det korrekte ID nummer. mjl har rigeligt fortjent en håndfuld points, men da han har gæster, og jeg gerne vil videre med mit projekt ville det være lækkert hvis en kunne komme med den endelige løsning :)
hehe det virkede schaefner :) Så har jeg blot en lille ting mere. Og så skulle det være færdig. Jeg har jo en login side. Hvis man indtaster forkerte oplysninger kommer den frem og siger at enten brugernavn eller password er forkert. Og ellers logger den en ind i systemet. Her skal jeg jo også have den til at tjekke at godkend er sat til en. Jeg sad og forsøgte mens jeg ventede på svar på det med idét, hvor jeg bare rettede værdien på en bruger manuelt. Men jeg ved ikke hvor jeg skal sætte dette ind i min kode.
Login:
$check = mysql_query("select brugernavn, password from users where brugernavn ='$_POST[brugernavn]' and password ='$_POST[password]'") or die (mysql_error());
if(mysql_num_rows($check) == 0) {
include("head.txt"); echo "Desværre, brugernavn eller password var forkert.<BR><BR>Hvis du ikke har en bruger, kan du oprette dig <a href=\"opret_bruger.php\">her</a><br><br>"; include("bottom.txt"); exit; }
Jeg har fordelt points på den måde at mjl fik 40 points, da han har hjulpet mig igennem meget, og selvom hans løsning med ID nummeret ikke var den løsning jeg brugte, har jeg samtidig fået banket cookie funktioner med sql fast.
Schaefner får 20 points for hjælp til løsningen med de sidste ting.
Jeg siger tak for hjælpen og den nye viden :)
/CyperMann
Synes godt om
Ny brugerNybegynder
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.