Avatar billede holmes2 Nybegynder
16. juli 2007 - 14:47 Der er 8 kommentarer og
1 løsning

Auto submit i firefox, men først udfør anden handling

Hej alle

Hvorfor fungerer dette i IE og ikke i Firefox?

Der kommer en email adresse fra en "Glemt email" side og videre til denne kode. Her bliver der lavet et nyt kodeord som bliver krypteret (da dette ikke kan gøres på serveren, laver jeg det på klienten på denne måde). Onload skal der altså først laves et nyt krypteret kodeord til formen og derefter skal den automatisk submites. Har også forsøgt at kalde functionerne fra <Body onload="")

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<script language="javascript" type="text/javascript" src="md5.js"></script>
<script language="javascript" type="text/javascript">

window.onload = function(){
var tegn = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
var kode = "";
for(i=0;i<5;i++)kode+=tegn.charAt(Math.floor(Math.random()*tegn.length))
window.document.forms.makecode.pass.value=kode;
window.document.forms.makecode.cryptpass.value=b64_md5("" + kode + "");
return true;
}


window.onload = function(){
window.document.forms.makecode.submit();
}
</script>
</head>

<body>
<%
email = LCase(Request.Form("emailpass"))
%>

<form id="makecode" name="makecode" method="post" action="sendemail.asp">
    <input type="hidden" name="email" value="<%=email%>">
    <input type="hidden" id="pass" name="pass">
    <input type="hidden" id="cryptpass" name="cryptpass">
</form>

</body>
</html>
Avatar billede windcape Praktikant
16. juli 2007 - 14:57 #1
Hvad virker præcist ikke i Firefox, og hvorfor kan du ikke gøre det på serveren?...
Avatar billede holmes2 Nybegynder
16. juli 2007 - 15:05 #2
Øj sorry, fejl kode, den ovenfor fungerer ikke i IE

Her er den når den fungerer i IE

Step 1 i Onload:  Lavkode()  her laves en krypteret kode ud fra MD5
                  Denne kode lægges i cryptpass i formen

Step 2: submit formen.

Fungerer i IE, bliver den ikke submited

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<script language="javascript" type="text/javascript" src="md5.js"></script>

<script language="javascript" type="text/javascript">
function lavkode(){
var tegn = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
var kode = "";
for(i=0;i<5;i++)kode+=tegn.charAt(Math.floor(Math.random()*tegn.length))
makecode.pass.value=kode;
makecode.cryptpass.value=b64_md5("" + kode + "");
return true;
}
</script>
</head>

<body onLoad="lavkode();window.document.forms.makecode.submit();">
<%
    email = LCase(Request.Form("emailpass"))
%>

<form id="makecode" name="makecode" method="post" action="sendemail2.asp">
    <input type="hidden" name="email" value="<%=email%>">
    <input type="hidden" id="pass" name="pass">
    <input type="hidden" id="cryptpass" name="cryptpass">
</form>

</body>
</html>
Avatar billede holmes2 Nybegynder
16. juli 2007 - 15:06 #3
I firefox bliver den ikke submited.

Jeg laver denne på klienten, da MD5 ikke kan gøres på serveren.
Avatar billede olebole Juniormester
16. juli 2007 - 15:18 #4
<ole>

Auto-åbning af popups og auto-submits af formularer bliver mere og mere vanskeligjort af browserleverandørerne ... lidt ærgeligt, hvis det virker i IE  =)

Hvorfor mener du ikke, du kan bruge md5 på serveren?
1) Enhver ASP-server kan afvikle JScript - og du har selv scriptet
2) Du kan sagtens bruge md5 i VBS. Søg på Google ... her er et enkelt hit:
    http://userpages.umbc.edu/~mabzug1/cs/md5/md5.asp

/mvh
</bole>
Avatar billede holmes2 Nybegynder
16. juli 2007 - 15:22 #5
Nu fungerede det, med denne her.
Lukker spørgsmålet


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<script language="javascript" type="text/javascript" src="md5.js"></script>
<script language="javascript" type="text/javascript">
function lavkode(){
var tegn = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
var kode = "";
for(i=0;i<5;i++)kode+=tegn.charAt(Math.floor(Math.random()*tegn.length))
window.document.forms.makecode.pass.value=kode;
window.document.forms.makecode.cryptpass.value=b64_md5("" + kode + "");
return true;
}
</script>
</head>

<body onLoad="lavkode();window.document.forms.makecode.submit();">
<%
    email = LCase(Request.Form("emailpass")

%>

<form id="makecode" name="makecode" method="post" action="sendemail.asp">
    <input type="hidden" name="email" value="<%=email%>">
    <input type="hidden" id="pass" name="pass">
    <input type="hidden" id="cryptpass" name="cryptpass">
</form>

</body>
</html>
Avatar billede holmes2 Nybegynder
16. juli 2007 - 15:34 #6
Hej OleBole

Det var jo en meget nemmere løsning. Har tidligere fået besked om at MD5 kun fandtes i javascript, men åbenbart fejl.

Tak for hjælpen. Læg et svar så får du point
Avatar billede olebole Juniormester
16. juli 2007 - 16:09 #7
Selvtak. Hvis du en anden gang kommer ud for at have et JavaScript, som du ikke mener at kunne eftergøre i VBS, kan du som sagt godt bruge det under ASP ... blot du sætter det i de rigtige JScript-tags med runat="server".

VBS kan endda efterfølgende læse dine JS-variabler (strenge, tal og booleans - mens arrays og objekter giver problemer) og evt. arbejde videre med dem. Søg i ASP-kategorien, hvis det skulle blive interssant en dag  ;o)
Avatar billede holmes2 Nybegynder
16. juli 2007 - 16:21 #8
Ja så lærte man også noget nyt idag. Takker :-)
Avatar billede olebole Juniormester
16. juli 2007 - 16:31 #9
- og tak for points  ;o)
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