Avatar billede vejgaard82 Nybegynder
29. oktober 2007 - 10:19 Der er 16 kommentarer og
1 løsning

Ændre kode ord ved brug af md5

Jeg kan ikke få mit script til at virke. Den gider ikke ændre mit kodeord inden i databasen. Mit script kommer hele tiden med at man taster forkert kodeord.

<?php
if($_SESSION["level"] >= 1){
$query = mysql_query("SELECT * FROM $CMSbrugere WHERE id='$id'") or die(mysql_error());
$row = mysql_fetch_array($query);
?>
<table class='bread_normal'>
<form method="post" action="">
    <td>Nuværende kode:</td>
    <td><input name='gammelkode' type='text' size='28'></td>
    </tr>
    <tr>
    <td>Ny Kode:</td>
    <td><input name='nykode' type='text' size='28'></td>
    </tr>
    <tr>
    <td>Gentag ny Kode:</td>
    <td><input name='nykodegentag' type='text' size='28'></td>
    </tr>
    <tr>
    <td></td>
    <td><input name='submit' type='submit' value="Opdater" size='28'></td>
    </tr>
    <input name="id" type="hidden" value="<?=$id?>">
</form>
</table>
<?php
if(isset($_POST["gammelkode"]) && $row["kode"] == md5($_POST["gammelkode"]) && $_POST["nykode"] == $_POST["nykodegentag"]) {
$query = mysql_query("UPDATE $CMSbrugere SET kode='" . md5($_POST["nykode"]) . "' WHERE id='$id'");
if(!$query) {echo mysql_error(); exit;}
} else if (!isset($_POST["gammelkode"])) {
}
else
{
echo "Forkert password indtastet";
}
}
?>
Avatar billede nielle Nybegynder
29. oktober 2007 - 10:39 #1
Det ser umiddelbart ok ud - selv om du nok også lige skal have et isset() tjek på de nye kodeord.

Hvordan lægger du kodeordene i basen helt til at starte med? Du bruger ikke et salt eller noget i den stil der?
Avatar billede dkfire Nybegynder
29. oktober 2007 - 11:20 #2
Hvor kommer $id fra ??
Avatar billede vejgaard82 Nybegynder
29. oktober 2007 - 23:00 #3
id kommer fra url. som så skal være = id i db.

Kodeordne ligger i db mysql.
Avatar billede dkfire Nybegynder
29. oktober 2007 - 23:23 #4
Så vil det nok være en ide at bruge $_GET['id'] i stedet.
Avatar billede dkfire Nybegynder
29. oktober 2007 - 23:23 #5
Og da id sikkert er et tal skal der ikke være '' omkring $_GET['id'] ($id)
Avatar billede nielle Nybegynder
30. oktober 2007 - 06:23 #6
id'et kan vist ikke komme fra urlet - det sendes i hvewrt fald ikke med når du saubmitter formen.

Du skal have et hidden felt, eller også skal id'et indgå i formens action.
Avatar billede nielle Nybegynder
06. november 2007 - 17:43 #7
Er du kommet vidre med denne her?
Avatar billede vejgaard82 Nybegynder
06. november 2007 - 21:04 #8
prøver men kan ikke rigtig få det til at spille. så jeg er tilbage til udgans punktet.
Avatar billede nielle Nybegynder
06. november 2007 - 21:43 #9
Hvordan ser din kode ud nu?
Avatar billede vejgaard82 Nybegynder
06. november 2007 - 22:00 #10
lige som sidst da jeg er gået tilbage til udgangspunktet
Avatar billede nielle Nybegynder
06. november 2007 - 22:05 #11
Hvordan ser det link ud som koden bliver kaldt fra?
Avatar billede vejgaard82 Nybegynder
06. november 2007 - 22:12 #12
Avatar billede dkfire Nybegynder
07. november 2007 - 10:30 #13
Hvor kommer $id og $CMSbrugere fra ??
Avatar billede vejgaard82 Nybegynder
07. november 2007 - 10:55 #14
jeg har rettet fejlen. Da du skrev det med id fandt jeg den fejl.
den hed:
<a href="?p=ret_pass">» Ret Kodeord</a>
rettede jeg til
<a href="?p=ret_pass&id=<?=$row["id"]?>">» Ret Kodeord</a>

så virkede det.
En der skal have de point.
Avatar billede nielle Nybegynder
07. november 2007 - 18:15 #15
Det er vel dkfire?
Avatar billede vejgaard82 Nybegynder
07. november 2007 - 18:48 #16
ja det har du nok ret i :D
Avatar billede vejgaard82 Nybegynder
20. marts 2008 - 23:43 #17
:)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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