02. august 2005 - 11:51Der 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?
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.
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?
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
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?
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å
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?
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.
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?
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">
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.
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);">?
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.
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".
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.
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.
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.
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.
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.
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?
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
og en response.write msg der skriver fejlbesked ud der hvor man indtaster kodeord..
Måske det kan bruges ?
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.