Avatar billede marie14 Nybegynder
02. august 2005 - 11:51 Der er 42 kommentarer og
1 løsning

Hvorfor og hvordan vedr. bekræftelse af password?

Når man skriver sit password bliver man nogen gange bedt om, at bekræfte det. En af grundende er vel, at sikre, at folk ved hvad de har tastet ind, men er der andre grunde og hvor vigtigt er det? Er man nødt til, at oprette en ekstra rubrik til det i sin database?
Avatar billede keysersoze Ekspert
02. august 2005 - 12:27 #1
normalt opretter du jo password i et password-felt og så bliver det du skriver kun vist som stjerner. Derfor kan man ikke se hvad man skriver og det er derfor også let at komme til at skrive fejl - derfor laver man et "gentag password"-felt for at minimere antallet af fejl-oprettelser.

Enten vha ASP eller javascript - eller begge dele - tjecker man så op på om felterne er ens. Er de ikke meldes der fejl til brugeren - er de går man til selve database-delen og eftersom begge felter jo er ens indsætter man kun det ene felt.
Avatar billede marie14 Nybegynder
02. august 2005 - 12:38 #2
Har du et mere et script på denne funktion?
Avatar billede marie14 Nybegynder
02. august 2005 - 12:39 #3
Det var lidt vrøvlet. En gang til...
Har du et script på denne funktion?
Avatar billede keysersoze Ekspert
02. august 2005 - 12:43 #4
hvilken speciel del tænker du på?
Avatar billede keysersoze Ekspert
02. august 2005 - 12:43 #5
det hele?
Avatar billede marie14 Nybegynder
02. august 2005 - 12:48 #6
Jeg skal lige have det mere præcist.
Altså, skal man lave et ekstra felt i databasen? og skrive et script til det eller er det et javascript man knytter til formularen?
Avatar billede keysersoze Ekspert
02. august 2005 - 13:20 #7
nej - du skal ikke lave et ekstra felt i databasen. kun ét password felt i databasen.

Ingenting sker automatisk i www - så for at tjecke at der virkelig blevet skrevet det samme i begge dine password-formfelter skal du tjecke op på at det også sker og det kan du gøre på klientniveau med javascript og på serverniveau med asp
Avatar billede marie14 Nybegynder
02. august 2005 - 13:23 #8
Godt, nu begynder vi, at forstå hinanden. Og det er disse script, som jeg tænkte du måske kunne give mig, eller fortælle hvor jeg kan finde dem henne?
Avatar billede keysersoze Ekspert
02. august 2005 - 13:26 #9
if Request.Form("pwd1") <> Request.Form("pwd2") Then
  response.write "fejl"
else
  response.write "ok"
end if
Avatar billede marie14 Nybegynder
02. august 2005 - 13:48 #10
Ok, det vil sige, at jeg opretter bare et ekstra felt til confirm password i min formular side og sætter dit script ind på min asp side, der indsætter oplysningerne i databasen?
Avatar billede keysersoze Ekspert
02. august 2005 - 13:55 #11
nah - ikke "bare". mit eksempel gør ikke andet end at udskrive enten "fejl" eller "ok" og det er nok ikke det der er målet med dit - i stedet for ok skal du nok gå til dit databasearbejde og i stedet for fejl skal du måske returnere til en fejlside eller udskrive en fejl brugerne kan forstå
Avatar billede marie14 Nybegynder
02. august 2005 - 14:20 #12
Det du har givet mig er et asp script. Det skal vel ind på en asp side, ikke?
Der skal vel så lægges et javascript på formularen, der gør, at den kommer med en alert box, ikke?
Avatar billede keysersoze Ekspert
02. august 2005 - 14:35 #13
det vil i hvert fald være en god idé

if (document.getElementById('pwd1') != document.getElementById('pwd2')) {
  alert('fejl');
}
Avatar billede marie14 Nybegynder
02. august 2005 - 15:07 #14
Jeg er nødt til, at gå videre med det i morgen. Håber du er her, hvis jeg har nogle spørgsmål.
Avatar billede marie14 Nybegynder
03. august 2005 - 10:17 #15
Jeg får det til, at det skal se sådan ud på min indsæt side:
strSQL = "Insert into bruger (User,Name,Password,Email) values('" & Request.Form("User") & "','" & Request.Form("Name") & "','" & Request.Form("Password") <> Request.Form("Password2") Then response.write "fejl" else response.write "ok" & "','" & Request.Form("Email") & "')"
Men det giver fejlmelding.
Avatar billede keysersoze Ekspert
03. august 2005 - 10:20 #16
det er fordi det er meget forkert;

if Request.Form("pwd1") <> Request.Form("pwd2") Then
  response.write "fejl"
else
  strSQL = "Insert into bruger (User,Name,Password,Email) values('" & Request.Form("User") & "','" & Request.Form("Name") & "','" & Request.Form("Password") & "','" & Request.Form("Email") & "')"
end if
Avatar billede marie14 Nybegynder
03. august 2005 - 10:43 #17
Ok, så langt så godt :-)
Jeg kan godt se den skal have funktionen, inden den går videre med det næste.
Er det nok, at jeg så giver den en response redirect tilbage til formularen og så lægger alert boxen på eller skal der mere til?
Avatar billede keysersoze Ekspert
03. august 2005 - 10:48 #18
en response.redirect vil fungere fint til formålet - dog kan du så først lave alert-boksen på den side du redirecter til.
Avatar billede marie14 Nybegynder
03. august 2005 - 11:04 #19
Response redirect fungerer. Hvis man ikke har bekræftet sit password kommer man tilbage til formularen, men det javascript du har givet mig, kan jeg ikke få til, at fungere, kan man bruge dette, som jeg har på en anden side?
<script type="text/javascript">

function validering()
  {
  error = 0;

  if((document.forms[0].navn.value=='') && (error==0)) 
  {       
    alert('Skriv dit navn');
    document.forms[0].navn.focus();
    error = 1;       
  }
 
  if((document.forms[0].adresse.value=='') && (error==0)) 
  {       
    alert('Skriv din adresse!');
    document.forms[0].adresse.focus();
    error = 1;       
  }
 
  if((document.forms[0].alder.value=='') && (error==0)) 
  {       
    alert('Skriv din alder!');
    document.forms[0].alder.focus();
    error = 1;       
  }

  if((document.forms[0].email.value=='') && (error==0)) 
  {       
    alert('Skriv din email!');
    document.forms[0].email.focus();
    error = 1;       
  }   

  if(error == 0)
  document.forms[0].submit();   
  }

</script>
Avatar billede keysersoze Ekspert
03. august 2005 - 11:11 #20
function validering() {
  error = 0;
  if (document.forms[0].password.value != document.forms[0].password2'.value) {
    alert('forkert pwd!');
    document.forms[0].password.focus();
    error = 1;
  }

  if(error == 0)
    document.forms[0].submit();   
  }
}
Avatar billede marie14 Nybegynder
03. august 2005 - 11:21 #21
Den skal vel se sådan ud, ikke?:
Men den kommer ikke med alert boxen. DEn kommer bare tilbage med en blank formular.
Hvad gør jeg forkert?

<script type="text/javascript">

function validering() {
  error = 0;
  if (document.forms[0].password.value != document.forms[0].password2'.value) {
    alert('Forkert password!');
    document.forms[0].password.focus();
    error = 1;
  }

  if(error == 0)
    document.forms[0].submit();   
  }
}
</script>
Avatar billede keysersoze Ekspert
03. august 2005 - 11:38 #22
selve scriptet SKAL ikke se sådan ud - men det KAN se sådan ud. Du skal selvfølgelig sørge for at få kaldt functionen "validering" i din form.

Derudover - når du returnerer med med response.redirect er det ikke nok "bare" at returnere for så glemmer formfelterne jo hvad der blev skrevet i dem. Derfor skal du jo sørge for at de indtastede data bliver smidt med tilbage ved redirect og lagt ned i formfelterne.
Avatar billede marie14 Nybegynder
03. august 2005 - 12:28 #23
Jeg har prøvet, at sætte validering på min form, men jeg kan ikke få det til, at virke.
Vedr. returnering, hvor formfelterne husker oplysningerne, kan man da bruge onclick="java script:history.go(-1);">?
Avatar billede marie14 Nybegynder
03. august 2005 - 12:49 #24
Nu har jeg fået den til, at virke med den du gav mig:
if (document.getElementById('pwd1') != document.getElementById('pwd2')) {
  alert('fejl');
}
Men vis jeg laver en validering på submit, kommer den med en fejlmelding ligegyldigt om det er rigtigt eller forkert.
Avatar billede keysersoze Ekspert
03. august 2005 - 13:02 #25
du kan godt bruge javascript til at retunere med - så skal du bare bruge javascript i stedet for asp-redirect.

Med det javascript-tjeck du har nu - kommer der en alertboks med teksten "fejl" i eller melder javascripten en scriptfejl? umiddelbart skal du jo huske at sørge for at du tjecker op på de formnavne som du reelt har. I din ASP kalder du felterne for "password" og "password2" - i ovenstående leder du efter felterne "pwd1" og "pwd2".

har du ikke et sted man kan se det online
Avatar billede marie14 Nybegynder
03. august 2005 - 13:08 #26
Det jeg har nu ser sådan ud og giver konsekvent en alert box, hvor der står fejl i.

:<script type="text/javascript">

function validering()
  {
  if (document.getElementById('Password') != document.getElementById('Password2')) {
  alert('fejl');
}
}

</script>

<br>

<form action="xxx.asp" method="post" onSubmit="validering();return false;">
Avatar billede keysersoze Ekspert
03. august 2005 - 13:11 #27
nu bytter du også rigtig rigtig meget om på de scripts jeg giver dig... hvor bruger du ikke den funktion jeg lavede 03/08-2005 11:11:00
Avatar billede marie14 Nybegynder
03. august 2005 - 13:20 #28
Jeg har prøvet den du gav mig kl. 11:11. Den virker slet ikke.
Avatar billede marie14 Nybegynder
03. august 2005 - 13:21 #29
if (document.getElementById('Password') != document.getElementById('Password2')) {
Skal den have et <> istedet for = ?
Avatar billede keysersoze Ekspert
03. august 2005 - 13:39 #30
nej

if (document.getElementById('Password').value != document.getElementById('Password2').value) {

men ovenstående kræver at dine formfelter ikke kun har et name men også et id
Avatar billede marie14 Nybegynder
03. august 2005 - 13:42 #31
De har en id
Avatar billede keysersoze Ekspert
03. august 2005 - 13:46 #32
i så fald vil du kunne bruge ovenstående if og så vil det nok blive ca sådan:

function validering() {
  if (document.getElementById('Password').value != document.getElementById('Password2').value) {
    alert('forkert pwd!');
    document.getElementById('Password').focus();
    return false;
  }
}
Avatar billede marie14 Nybegynder
03. august 2005 - 14:31 #33
Jeg kan ikke få det til, at fungere sammen. Asp koden ville kunne fungere sammen med en redirect side, men jeg kan ikke få den til, at fungere sammen med java scriptet. Det har været en god indsats du har gjort. Så du er velkommen til, at få pointene.
Avatar billede keysersoze Ekspert
03. august 2005 - 23:08 #34
tænk på at asp fungerer serverside og javascript clientside. så hvis du vil udføre noget javascript skal du selvfølgelig sørge for at sætte det ud for asp-tags og dernæst skal du tænke på at HELE siden vil blive fortolket på serveren for der sendes noget til klient hvor et evt javascript så først vil tage effekt.
Avatar billede marie14 Nybegynder
04. august 2005 - 10:54 #35
Som det er nu virker tingene fint hver for sig, men jeg kan ikke få den til, at gå tilbage og samtidig komme med en alert box.
Hvis password2 feltet er tomt kommer den med alert boxen, hvis jeg skriver forkert laver den en redirect som, den er blevet bedt om, men den kommer ikke med alert boxen, den laver bare en reset.
Der må mangle et eller andet.
Avatar billede keysersoze Ekspert
04. august 2005 - 11:16 #36
hvis du går tilbage med javascript bliver det overordentligt svært at komme med en alert-boks medmindre du laver den på den side du redirecter fra. hvis du redirecter med asp kan du fx føre en parameter med tilbage til form-siden som gør at der bliver aktiveret et javascript.
Avatar billede marie14 Nybegynder
04. august 2005 - 11:18 #37
Øøøhh, hvordan er det nu lige, at jeg gør det? :-)
Avatar billede keysersoze Ekspert
04. august 2005 - 11:28 #38
på din redirect-side fx

response.redirect "side.asp?var1=noget&var2=nogetandet&alertboks=true

på din formside fx

if request.querystring("alertboks") = "true" then
  'indsæt alertboks
end if

uden forhåbentligt at fornærme dig - har du tænkt på måske at læse en smule mere om asp inden du gik igang? forskellen mellem clientside og serverside samt hele parameter-delen som if-statements elementerne bør være ret elementære.
Avatar billede marie14 Nybegynder
04. august 2005 - 11:33 #39
Jeg har lavet en del ting, der er endt med, at fungere, men bare rolig jeg skal snart på kursus. :-)
Avatar billede keysersoze Ekspert
04. august 2005 - 11:44 #40
ok - men i hvert fald med ovenstående vil du kunne få den effekt du søger.
Avatar billede marie14 Nybegynder
05. august 2005 - 09:28 #41
Jeg må da indrømme, at det godt kan forvirre mig, når du f.eks skriver som her:
response.redirect "side.asp?var1=noget&var2=nogetandet&alertboks=true
Hvad skal jeg skrive der hvor du skriver noget og nogetandet?
Jeg formoder du mener password1 og password2?
Avatar billede keysersoze Ekspert
05. august 2005 - 09:43 #42
Avatar billede totalpc Seniormester
06. august 2005 - 23:43 #43
Jeg skal indrømme at jeg ikke har nærlæst hele tråden, men jeg bruger ikke java til at tjekke om kodeord er ens. Jeg har en form fil hvor man indtaster og en fil der tjekker og gemmer i db. I sidstnævnte fil tjekker jeg om kodeord er ens og bruger response.redirect med en server.urlencode til at tage allerede indtastede felter og en besked med tilbage :

if Request.form("kodeord") <> Request.form("kodeord2") then
  Response.Redirect "indtast_bruger.asp?msg=" & Server.URLEncode ("Kodeord stemmer ikke overens!.")& "&brugernavn=" & Server.URLEncode(strbrugernavn)& "&fornavn=" & Server.URLEncode(strFornavn)& "&efternavn=" & Server.URLEncode(strEfterNavn)& "&email=" & Server.URLEncode(stremail)
end if


på Formsiden har jeg så en

<%
msg= request.querystring("msg")
brugernavn=request.querystring("brugernavn")
fornavn=request.querystring("fornavn")
efternavn=request.querystring("efternavn")
email= request.querystring("Email")
kodeord= request.querystring("kodeord")
kodeord2= request.querystring("kodeord2")
%>

og en response.write msg der skriver fejlbesked ud der hvor man indtaster kodeord..

Måske det kan bruges ?
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
Kurser inden for grundlæggende programmering

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