Jag är verkligen inte bra på det här.
JAg lovar, jag har sökt, och sökt, och hittat massor med kod här på wF, men problemet är inte att koden inte funkat, det är att det är skit bakom tangentbordet.
Jag lyckas helt enkelt inte konvertera kodsnuttar från en uppgift till en annan.
Så det jag skulle vilja, är en kod, som onsubmit kollar om de tre fälten som finnes i formuläret, verkligen fyllts i, och att lite andra kontroller stämmer.
Det skall vara en client-side kontroll av lösenord, innan man skickar iväg sitt nya lösenord till servern.
Vilket innebär att man skall ha det gamla lösenordet i första fältet, och det nya i fält två, och en kontroll så att det nya inte är felstavat, i fält 3.
Fält 1 får inte vara samma som fält 2 eller 3
Fält 2 och 3 måste vara likadana, och längre än 8 tecken.
Ingen av de tre får dock vara längre än 40 tecken.
Och inget av fälten får vara tomma.
Efter denna kontroll skall fält 1 och 2 krypteras med sha1 (sha1.js är inkluderad) och skickas till nästa sida.
Och om något inte stämmer så skall inget skickas, formulärsidan skall vara kvar, och en alert ruta skall komma upp och tala om vad som är fel.
Det låter ju som om det skulle vara enkelt nog att göra, framförallt med all finfin kod som redan finns här på wF. Men icke.
Här nedan kommer koden jag arbetar med, men som inte funkar ett skvatt. Den skickar vidare till nästa sida vad jag än fyller i de tre fälten.
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Byt lösenord</title>
<link rel="stylesheet" href="css/style.css" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="js/sha1.js"></script>
<script type="text/javascript">
function check(b, u, e){
if (b.value==""){
alert("Inte ifyllt fält");
return false;
} elseif (u.value==""){
alert("Inte ifyllt fält");
return false;
} elseif (e.value==""){
alert("Inte ifyllt fält");
return false;
}
if (b.value == u.value){
alert("Nya lösenordet samma som gamla, försök igen");
return false;
}
if (u.value.length < 8 || e.value.length < 8){
alert("Lösenordet måste vara minst 8 tecken långt, försök igen");
return false;
}
if (u.value != e.value){
alert("Nya lösenordet matchar inte dubbelkollen, det skall vara samma lösenord, försök igen");
return false;
}
document.changePwdForm.oldPwd.value = hex_sha1(b);
document.changePwdForm.newPwd.value = hex_sha1(u);
document.changePwdForm.ctrlPwd.value = hex_sha1(e);
}
</script>
</head>
<body>
<div class="changePwdForm">
<div class="cpf_l1">
<div class="cpf_l2">
<form action="sida2.php" method="post" name="changePwdForm" onsubmit="check(this.oldPwd.value, this.newPwd.value, this.ctrlPwd.value); return true;">
<p>Nuvarande lösenord</p>
<input type="password" name="oldPwd" class="text" /><br /><br />
<p>Det nya lösenordet</p>
<input type="password" name="newPwd" class="text" /><br /><br />
<p>Det nya lösenordet igen</p>
<input type="password" name="ctrlPwd" class="text" /><br /><br />
<input type="submit" class="submit" value="Byt lösenord" />
</form>
</div>
</div>
</div>
</body>
</html>
Någon som har lust och ork att hjälpa en stackare som inte klarar av js riktigt?
MVH Patrik