25. juli 2004 - 10:34Der er
38 kommentarer og 1 løsning
Kontrol af funktion
Hej.
Jeg ved for lidt om det javascript, så jeg har lavet en formentlig forkert funktion, og jeg vil så bede en af jer om at omskrive den så det er korrekt syntax.
Den virker ikke, så derfor er jeg rimelig sikker på at den ikke er rigtig skrevet:
<script type="text/javascript"> function validateKode( kode ){ if substr(md5($email),2,5) == $kode { return true; } else { window.open("Din kode er forkert","nytVindue","top=200,left=200,width=350,height=250,scrollbars=no"); return false; } </script>
Ja, det er ikke helt rigtigt, men jeg vil hellere spørge hvad det er du vil? Du skal ikke begynde at kontrollere "loginkoder" eller hvad det er, i javascript. Men en "vis kilde" kan man se alt. Gør det i PHP.
-- og erik har helt ret i at den slags validering er tåbeligt at lave med client-side javascript !-)
Synes godt om
Slettet bruger
25. juli 2004 - 10:40#3
ja, men det er nu ikke en vigtig kode. Det er kun en kontrol af at en email adresse virker. Koden sendes til postkassen på den email der skrives. Derefter kan man lige checke at det er den rigtige kode.
Udregningen laves i en php fil som så sender en mail med koden i.
Men det er to andre filer, hvor det virker. Men jeg skal bruge det i en anden formular, og der har jeg problemer med at få valideringen til at virke. Og igen, det er ikke noget der har noget med sikkerhed at gøre. Kun en simpel kontrol af at postkassen virker, så bestillingsformularen sendes det rigtige sted hen :-)
Synes godt om
Slettet bruger
25. juli 2004 - 10:45#6
Her kaldes filen der udregner koden: <input type="text" name="email" onblur="validateEmail(this.value);" value="<?php echo $_SESSION['email']; ?>" size="50">
og email er så lagt i $email fra $_SESSION['email'] - det "skulle" være godtnok, men jeg er selvfølgelig ikke helt sikker endnu.
-- en php-variabel findes ikke for et javascript, så den skal defineres for sig (måske ved at hente værdien i email-feltet !-)
md5-funktionen er også en php-ting ?-)
Synes godt om
Slettet bruger
25. juli 2004 - 10:51#9
Ja det er php, og det er jo lige nøjagtig der det er galt. Det skal jo reagere når man har indtastet den sendte kode, og vil gå videre. Men jeg ved jo netop ikke hvordan man gør, og den funktion jeg havde lavet er for at vise hvad jeg vil, tror jeg nok :-) Men det er jo ikke sikkert i forstår det på samme måde som jeg gør.
Enten skal du smide koden direkte i html-filen, eller også skal du udføre checket server-side ...
Synes godt om
Slettet bruger
25. juli 2004 - 10:55#11
Altså: emailen er indtastet i linien før koden i formularen. Der kaldes så en fil der sender koden til den angivne email adresse.
Koden skal så indskrives i næste felt, og hvis koden er rigtig skal NÆSTE knappen i formularen blive aktiv, og man kan bestille. Er koden forkert skal der poppe et lille vindue op der fortæller at den er skrevet forkert.
Frem til at sende koden og medtage den, virker det. JEg kan bare ikke finde ud af at implementere valideringen som yellow gav mig i hans eksempler. Det er det jeg gerne vil opnå.
Selv den mest ligegyldige validering af den slags skal du udføre server-side ...
Alternativet er nemlig, at du i klartekst udfylder et felt (som godt kan være hidden, men det vil stadig kunne ses i Vis Kilde !-), og så tester op mod det ...
Koden udskrives på skærmen lige nu. Jeg blev træt af at fise i mailboksen efter koden hvergang :-)
Men når koden så indskrives og man igen trykker TAB, så skal man kunne trykke på næste, hvos koden er skrevet rigtigt, ellers poppe vinduet op der fortæller at den er forkert skrevet.
Synes godt om
Slettet bruger
25. juli 2004 - 11:10#14
Skal det laves serverside, så må det vel være noget med at at kalde en .php fil som når email checkes. Men hvordan styrer man så om det er rigtigt eller forkert det der kommer tilbage derfra ? Jeg kan altså ikke overskue det.
Vi mangler jo stadig den værdi, der skal valideres imod, men noget i denne stil (og jeg ahr lagt dine scripts sammen, for det er bare overflødigt at skrive <script></script> hver gang !-)
<script type="text/javascript" language=javascript> function blink() { document.form2.skole.focus() } function validateEmail( email ){ window.open("SendKode.php?email="+email,"nytVindue","top=200,left=200,width=550,height=250,scrollbars=yes"); } function validateKode(flt){ if(flt.form.ValidatedKode.value == flt.value) { return true; } else { window.open("Din kode er forkert","nytVindue","top=200,left=200,width=350,height=250,scrollbars=no"); return false; } </script>
Nu har jeg klippet det ind du har sendt her, og nu virker email check ikke. Der kommer ikke et vindue med koden, så den kalder åbenbart ikke filen.
Synes godt om
Slettet bruger
25. juli 2004 - 11:26#17
ved at lægge funktionerne ind i <script type="text/javascript" language=javascript> og slutte med </script> så virker popup skærmen her. Men der er nogle object fejl i nogle linier der ikke har noget med dette at gøre. Så det forstår jeg ikke.
Synes godt om
Slettet bruger
25. juli 2004 - 11:33#18
Nå der manglede en } :-) men der er stadig et eller andet tosset.
Synes godt om
Slettet bruger
25. juli 2004 - 11:35#19
Nu brokker den sig over formfejl og at denne er 0: validatedKode
<input type="hidden" name="validatedKode">
Synes godt om
Slettet bruger
25. juli 2004 - 11:37#20
Den skriver:
Error: 'form.ValidatedKode.value' is nul or not an object
Synes godt om
Slettet bruger
25. juli 2004 - 11:53#21
Nå javascript ser også forskel på store og små bogstaver :-)
Så nu kommer dette når jeg har indtastet koden:
Object not found! The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
Synes godt om
Slettet bruger
25. juli 2004 - 12:02#22
Jeg synes ikke at kan se, at der er nogen URL den skal kalde der.
Synes godt om
Slettet bruger
25. juli 2004 - 12:21#23
Det er denne:
function validateKode(flt){ if(flt.form.validatedKode.value == flt.value) { return true; } else { window.open("Din kode er forkert","KodeVindue","top=200,left=200,width=350,height=250,scrollbars=no"); return false; } }
Den tror at "Din kode er forkert" er en link, så der skal åbenbart være en fil den kan kalde, men den skal jo ikke kaldes når koden er rigtig, så det fatter jeg ikke en pind af.
Den fejl skulle jo først komme når man skriver forkert.
Synes godt om
Slettet bruger
25. juli 2004 - 12:35#24
Jeg synes heller ikke at kunne finde ud af at koden passer sammen med den indtastede email ? Hvordan gør den det ?
Synes godt om
Slettet bruger
26. juli 2004 - 07:45#25
Nå, nu ser det ud til ( jeg er ikke helt sikker ) at dette virker:
function validateEmail( email ){ mailtemp = hex_md5(email); mailkode = mailtemp.substr(2,5); window.open("SendKode.php?email="+email,"EmailVindue","top=200,left=200,width=550,height=250,scrollbars=yes"); } function validateKode( kode ) { if (mailkode == kode) { return true; } else { document.write("Der er fejl i den indtastede kode"); return false; } }
Men knappen i bunden bliver ikke aktiveret som jeg forventede :) Kan jeg få et tips eller 2 til det ?
Det er ikke helt hensigtsmæssigt endnu, men når først det virker, så ved jeg jo når jeg laver noget forkert, og kan så bedre styre at lave om på det, tror jeg nok :)
Efter afsendelse af email lægges email over i en session variabel, så den huskes. Jeg er mere usikker på om de javascript funktioner kan huske variablerne. Kan man få den til det ? Li'som sessions i php ?
Det ser nu ud til at virke, lige bortset fra at få aktiveret NÆSTE submit knappen.
En der kan få mig på rette vej med det ?
Synes godt om
Slettet bruger
27. juli 2004 - 07:38#28
>>> roenving - Hvis du synes det er ok med 30 points for din ulejlighed, så læg et svar. Er du utilfreds med det, så brok dig :-)
Jeg kan ikke forstå at jeg ikke kan få det til at virke, når noget lignende virker i to andre filer. Men nu er det jo i min formular det skal virke i. Jeg prøver at lægge hele formularen ind herunder, hvor jeg gerne vil havedet til at virke. Og det er altså kun at få submit kanppen til at blive aktiv efter sammanligningen.
Et svar der virker på min formular, udløser så resten af de udlovede points. HEr er koden:
Jeg har også forsøgt at rykke hele kodecheck delen ned til submit knappen,men det gav ingen ændring.
Jeg håber stadig på et svar så jegkan komme videre med det.
Synes godt om
Slettet bruger
27. juli 2004 - 11:43#29
Kan det virkelig slet ikke lade sig gøre, at få det til at virke ? Jeg synes jeg har prøvet alt muligt nu. Men åbenbart ikke det rigtige, hvis der findes en måde at gøre det på.
-- men de 30 point er nok mere reelt for det stykke arbejde, jeg har leveret, så behold selv de fleste af de afsatte point !-)
Synes godt om
Slettet bruger
27. juli 2004 - 12:02#33
Nej du har fortjent dem :-) Jeg har søgt og rodet rundt siden jeg startede spørgsmålet, og for mig virkede det helt umuligt. Så bare lige fordu ved hvordan man gør, skal du alligevel have noget for at hjælpe.
Kan man tilføje noget til den funktion, så den ikke aktiveres før der står noget i feltet. Som den er nu aktiveres den, og kommer med en fejl når man klikker på noget andet.F. eks. mailboksen for at hente koden. Det er jo ikke så godt.
Hvordan klarer man det ?
Synes godt om
Slettet bruger
27. juli 2004 - 19:14#36
Kandet passe at onChange lige er den jeg skal bruge. Hvis det er tilfældet så er denklaret :-)
Synes godt om
Slettet bruger
28. juli 2004 - 10:39#37
Til orientering.
Det lader til ikke at være smart at bruge onblur= hvis der er felter før og efter, da man kan gå videre uden at skrive noget. Ved at bruge onchange= istedet for slipper man for at den gør noget før der er skrevet noget i feltet.
Måske giver det så andre problemer, det ved jeg ikke, men indtil videre kører det.
Ja, det kan jeg se. Men der er også mere kontrol på. Med onchange skulle jeg kun udskifte ordet :-)
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.