Avatar billede ohs Nybegynder
10. december 2006 - 20:38 Der er 14 kommentarer og
1 løsning

Ingen dublerer af password

Denne kode ændrer jeg password med. Hvordan forhindrer jeg at der oprettes to ens password.

<?php
$colname_rs_update = "1";
if (isset($_POST['brugernavn'])) {
  $colname_rs_update = (get_magic_quotes_gpc()) ? $_POST['brugernavn'] : addslashes($_POST['brugernavn']);
}
mysql_select_db($database_cms, $cms);
$query_rs_update = sprintf("SELECT * FROM brugere WHERE brugernavn = '%s'", $colname_rs_update);
$rs_update = mysql_query($query_rs_update, $cms) or die(mysql_error());
$row_rs_update = mysql_fetch_assoc($rs_update);
$totalRows_rs_update = mysql_num_rows($rs_update);

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if (isset($_POST['id'])) {
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "code") && ($_POST['gammel_password']==$row_rs_update['password']) && ($_POST['nyt_password']==$_POST['gentag_password'])) {
  $updateSQL = sprintf("UPDATE brugere SET password='%s' WHERE brugernavn='%s'",
                      $_POST['nyt_password'],
                      $_POST['brugernavn']);

  mysql_select_db($database_cms, $cms);
  $Result1 = mysql_query($updateSQL, $cms) or die(mysql_error());
    $result="<b style='color: #0000ff;'>Koden er blevet ændret</b>";
}
    else $result="<b style='color: #ff0000;'>Der er en fejl i dine indtasninger, prøv igen</b>";
}

?>
Avatar billede showsource Seniormester
10. december 2006 - 20:44 #1
Du lader feltet i DB være "UNQUE", så kan du aldrig gemme samme værdi i mere end et row
Avatar billede showsource Seniormester
10. december 2006 - 20:44 #2
hov, "UNIQUE"
Avatar billede ohs Nybegynder
10. december 2006 - 20:49 #3
Hvor i DB finder du UNIQUE, jeg har kikket under datatype, men der er ingen.
Avatar billede morhan Novice
10. december 2006 - 20:52 #4
Er der en god logik bag, at to brugere ikke må have samme password?
Avatar billede showsource Seniormester
10. december 2006 - 20:56 #5
<?php
//connect til DB

mysql_query("ALTER TABLE `brugere` ADD UNIQUE (`password`)") or die (mysql_error());

?>

Og jahh, hvorfor nu det?
Avatar billede ohs Nybegynder
10. december 2006 - 20:59 #6
Ok jeg indsætter bare linjen i linje 2 er det ikke korrekt.
Avatar billede ohs Nybegynder
10. december 2006 - 21:00 #7
Hvad mener du med dette:  Og jahh, hvorfor nu det?
Avatar billede leif Seniormester
10. december 2006 - 21:02 #8
Sidder og kigger undrende på dette spørgsmål, normalt er man da ligeglad med om 2 brugere har samme Password, da man da normalt kun her Username som UNIQUE. Har du en speciel grund til det ?
Avatar billede ohs Nybegynder
10. december 2006 - 21:03 #9
Ja det er der, i kan se hvorfor sidst i tråden på dette link.
http://www.eksperten.dk/spm/749907
Avatar billede showsource Seniormester
10. december 2006 - 21:05 #10
Samme som morhan og leif
Avatar billede ohs Nybegynder
10. december 2006 - 21:22 #11
Hvis jeg vil indsætte en meddelse i koden hvis der er en dobler, hvor skal jeg indskrive dette.
Avatar billede showsource Seniormester
10. december 2006 - 21:29 #12
$Result1 = mysql_query($updateSQL, $cms) or die(mysql_error());
    $result="<b style='color: #0000ff;'>Koden er blevet ændret</b>";
}
    else $result="<b style='color: #ff0000;'>Der er en fejl i dine indtasninger, prøv igen</b>";
}


til

if(mysql_query($updateSQL, $cms)) {
    $result="<b style='color: #0000ff;'>Koden er blevet ændret</b>";
}else{
    $result="<b style='color: #000000;'>Valgte kode kan ikke bruges!</b>";
}

vil jeg mene
Avatar billede ohs Nybegynder
10. december 2006 - 21:51 #13
showsource

Det virker perfekt nu, det samme gør jeg med brugernavn, sådan her.

mysql_query("ALTER TABLE `brugere` ADD UNIQUE (`brugernavn`)") or die (mysql_error());
Avatar billede ohs Nybegynder
10. december 2006 - 21:51 #14
showsource  husk at lægge et svar.
Avatar billede showsource Seniormester
11. december 2006 - 05:40 #15
ok
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