29. oktober 2003 - 03:31Der er
5 kommentarer og 1 løsning
Ændre bruger
Jeg har lavet et simpelt login-system, hvor man kan oprette en bruger. Brugerens oplysninger bliver så gemt i en database. Nu vil jeg så gerne have mulighed for at brugeren skal kunne ændre i sine data og det så bliver gemt i databasen.
Her er koden til at oprette brugeren: ________________________________________________________
<?php require("config.php"); $opret = &$HTTP_POST_VARS['opret']; if(empty($opret)) { print "Du skal aktivere dette script vha. formen i opret.php." ?> <br><a href="opret.php">Klik her for at oprette bruger</a> <?php } else {
if(empty($brugernavn) OR empty($password)) { echo 'Et af felterne er tomme';} else { mysql_connect($mysql_host, $mysql_user, $mysql_pw); mysql_select_db($mysql_db);
$result = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'") or die (mysql_error()); $number = mysql_num_rows($result); if ($number > 0) { print 'Desværre brugernavnet er optaget'; } else { mysql_query("insert into users (brugernavn, password, email) values ('$brugernavn', '$password', '$email')") or die(mysql_error()); print "Brugernavn $brugernavn er oprettet!"; ?> <a href="login.php">Klik her for at logge ind</a> <?php } } } ?>
Den kræver selvfølgelig at brugeren er logget ind og $brugernavn skal være tilgængeligt for scriptet. Men du har vel et eller andet form for tjek på dine sider og en måde at overføre brugernavn på (sessions?).
Synes godt om
Slettet bruger
29. oktober 2003 - 08:57#3
Måske du skulle lave et dobbelt tjek med passwordet. Så folk ikke taster forkert.
Inden du opdatere databasen kan du så lave et tjek. if($password != $passwordigen) { $echo "Fejl"; } else { $result = mysql_query("UPDATE users SET brugernavn='$brugernavn', password='$password', email='$email' where brugernavn = '$old'") or die (mysql_error()); }
På den måde sikre du dig at brugeren så ikke taster forkert, og derefter ikke kan logge ind fremover.
Jeg har en del problemer med at komme ind på "ret.php", jeg ville gerne lave det sådan så at når man har tastet brugernavn og password kan man komme ind og ændre sin bruger, men den vil ikke rigtig tage login-oplysningerne med over.
Synes godt om
Slettet bruger
29. oktober 2003 - 10:08#5
Du skal bruge en måde at genkende personen på. F.eks. med sessions. Når brugeren logger ind giver du vedkommende nogle oplysninger, så du senere kan genkende personen. F.eks.
Ja, det er en god idé med dobbelttjek af password'et og jeg vil osse give cypermann ret i, du er nød til at bruge sådan et form for login-tjek på dine sider. Du bruger så selvfølgelig $_SESSION['brugernavn'] istedet for $brugernavn. Resultatet er noget i den her stil:
<?php // Indsæt dit logintjek her! require("config.php"); mysql_connect($mysql_host, $mysql_user, $mysql_pw); mysql_select_db($mysql_db); if (isset($_POST['change'])) { extract($_POST); if ($password != $passwordigen) die("De to password skal være ens!"); $result = mysql_query("UPDATE users SET brugernavn='$brugernavn', password='$password', email='$email' WHERE brugernavn = '$old'") or die (mysql_error()); header('Location: din_side.php'); // Send brugeren til en anden side (udskift 'din_side.php') } else { $result = mysql_query("select brugernavn, password, email from users where brugernavn = '$brugernavn'") or die (mysql_error()); $number = mysql_num_rows($result); if ($number == 1) { $row = mysql_fetch_assoc($result); extract($row); ?> <html><head></head><body> <form action="" method="post"> Brugernavn: <input type="text" name="brugernavn" value="<?=$brugernavn?>" /><br> Password: <input type="password" name="password" value="<?=$password?>" /><br> Password igen: <input type="password" name="passwordigen" /><br> e-mail: <input type="text" name="e-mail" value="<?=$email?>" /><br> <input type="hidden" name="old" value="<?=$brugernavn?>" <input type="submit" name="change" value="Ok" /> </form></body></html> <?php } else { print "Fejlmeddelelse"; // Vis fejlmeddelelse, hvis ikke brugeren findes i databasen. } } ?>
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.