Toset Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 (endret) Hei. På en webside eg driver og jobber med skal man kunne skrive inn MAC og IP adresser på siden. Noen som vet kordan man kan sjekke innholdet som blir skrevet inn, slik at ulovlige verdier ikke kan brukes? MAC skal kun inneholde hexadesimale tall (0-9 og a-f), og en ip skal kun inneholde tall fra 0-128 i hvert ledd. Bruker nå <input type='text' size='2' maxlength='2' name='mac1'> <input type='text' size='3' maxlength='3' name='ip1'> for hvert ledd i MAC og ip adressen. Noen forslag til kordan eg kan gi en feilmelding eller noe om verdiene i disse feltene havner utenfor verdiområdene? Eventuelt en helt annen måte dette kan gjøres på? (php, javascript eller noe?) Endret 24. mai 2006 av dominizer Lenke til kommentar
svamp Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 Du kan i alle fall ikke gjøre det med HTML. Anbefaler å prøve PHP-forumet Lenke til kommentar
Joakim Gjerde Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 Dette er mulig å gjøre med javascript! Dette legger i headeren <script language="JavaScript"> <!-- function textLimit(field, maxlen) { if (field.value.length > maxlen + 1) alert('Teksten kan maks være 200 tegn. Den er nå blitt forkortet til dette! !'); if (field.value.length > maxlen) field.value = field.value.substring(0, maxlen); } //--> </script> Og inputen blir da f.eks slik <textarea cols='30' name='annet' rows='5' onkeyup='textLimit(this, 200);'></textarea> Der det da står 200 i textarea kan endres til grensen du vil ha Lenke til kommentar
Toset Skrevet 23. mai 2006 Forfatter Del Skrevet 23. mai 2006 Umm, problemet var ikke å begrense antall tegn, det gjøres ved "maxlength='2'", som allerede er en del av koden min. Problemet var å KUN ta imot hexadesimale tegn på MAC adressen, og kun tall 0-128 på ip-adressen Lenke til kommentar
backup Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 (endret) Mest effektivt er å bruke "regular expressions". Her er eksempel på dette i javascript på kilentmaskina: <html> <head> <script> function sjekkMac(mac) { var reg ="^([0-9a-fA-F][0-9a-fA-F]{5}([0-9a-fA-F][0-9a-fA-F])$"; if (mac.match(reg)) { alert( "Gyldig Mac-nummer!"); return true; } else { alert( "Ugyldig Mac-nummer!" ); return false; } } function sjekkIp(ip) { var reg = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; if (ip.match(reg)) { alert( "Gyldig Ip-nummer!"); return true; } else { alert( "Ugyldig Ip-nummer!" ); return false; } } </script> <h3>Mac-nummer validering</h3> </head> <body> Tast inn Mac-nummer: <input name = "mac" type="text" value = "01:23:45:67:89:ab"> <input type = "button" value="Sjekk Mac" onClick="sjekkMac(mac.value)"> <br> Tast inn Ipnummer: <input name = "ip" type="text" value = "123.45.67.89"> <input type = "button" value="Sjekk Mac" onClick="sjekkIp(ip.value)"> <br> </body> </html> Edit: der hvor den derre smylien står skal det stå "kolon høyreparentes". Noe dritt at man ikke kan lime inn dette uten at det blir til smyli. Endret 23. mai 2006 av backup Lenke til kommentar
Vindstille Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 Anbefaler å begynner PHP eller et serversidespråk og ikke javascript. Vis du bruker javascript kan brukeren uansett bare lage sin egen side hvor han fjerner javascriptet og poste ting som ikke er lov. Lenke til kommentar
Cucum(r) Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 Anbefaler å begynner PHP eller et serversidespråk og ikke javascript. Vis du bruker javascript kan brukeren uansett bare lage sin egen side hvor han fjerner javascriptet og poste ting som ikke er lov. 6163276[/snapback] Eg anbefaler å bruke begge. Lenke til kommentar
Christian. Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 Ta hverfall 0-254 på IP-Adresser siden det er en del som har høyere tall enn 128. Lenke til kommentar
Vindstille Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 Anbefaler å begynner PHP eller et serversidespråk og ikke javascript. Vis du bruker javascript kan brukeren uansett bare lage sin egen side hvor han fjerner javascriptet og poste ting som ikke er lov. 6163276[/snapback] Eg anbefaler å bruke begge. 6163697[/snapback] PHP er et krav. Javascript kan du bruke i tillegg for å øke brukervennligheten. Men vil du slippe unna med minst mulig jobb velger man bare PHP (eller annet serversidescriptspråk) Lenke til kommentar
Cucum(r) Skrevet 23. mai 2006 Del Skrevet 23. mai 2006 Anbefaler å begynner PHP eller et serversidespråk og ikke javascript. Vis du bruker javascript kan brukeren uansett bare lage sin egen side hvor han fjerner javascriptet og poste ting som ikke er lov. 6163276[/snapback] Eg anbefaler å bruke begge. 6163697[/snapback] PHP er et krav. Javascript kan du bruke i tillegg for å øke brukervennligheten. Men vil du slippe unna med minst mulig jobb velger man bare PHP (eller annet serversidescriptspråk) 6165473[/snapback] Jepp, litt meir jobb for ein mykje bedre brukeroppleving er absolutt tabu. Lenke til kommentar
Toset Skrevet 24. mai 2006 Forfatter Del Skrevet 24. mai 2006 Ender nok opp med å bruke php her, javascript dekket ikke alle behovene i dette tilfellet. Men noen som vet kordan eg skal sette opp en sjekk på dette i php? Sjekke mac-adressen opp mot et verdiområde? MAC-en er her på formatet 01:23:45:67:89:AB ^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$ Sånn funker den i javascript (takk backup), men kordan lage noe tilsvarende i php? Ikke så stødig på php dessverre... PS. En moderator kan gjerne flytte den til php forumet, da det er det eg ender opp med å bruke Lenke til kommentar
Toset Skrevet 24. mai 2006 Forfatter Del Skrevet 24. mai 2006 Eventuelt, noen som vet kordan man kan stoppe en input-knapp (type submit) fra å kjøre <form name='lagreBoks' action='boks_xml.php'>, hvis metoden submitknappen bruker (onClick='sjekk(mac.value, ip.value)) returnerer false? I dette tilfellet vil sjekk(a,b) gi false dersom ip ELLER mac inneholder ugyldig verdier. Hvis en av disse er feile verdier, vil eg jo helst at ingenting blir lagret og php-funksjonen aldri blir kjørt. Noen måte å stoppe dette fra å skje? Lenke til kommentar
backup Skrevet 24. mai 2006 Del Skrevet 24. mai 2006 Her har du et eksempel der send-knappen ikke sender til test.php hvis mac eller ip er feil. Merk deg to ting: send-knappen settes som type = button og i funksjonen totalSjekk står det f.submit() som sender mac og ip hvis dem er riktige. Du må selvfølgelig rette den der fordømte smylien som kommer inn i "regular expression" for mac! <html> <head> <script> function totalSjekk(mac,ip) { if (sjekkMac(mac)) { if (sjekkIp(ip)) { f.submit(); }}} function sjekkMac(mac) { var reg ="^([0-9a-fA-F][0-9a-fA-F]{5}([0-9a-fA-F][0-9a-fA-F])$"; if (mac.match(reg)) { return true; } else { alert( "Ugyldig Mac-nummer!" ); return false; }} function sjekkIp(ip) { var reg = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; if (ip.match(reg)) { return true; } else { alert( "Ugyldig Ip-nummer!" ); return false; }} </script> </head> <body> <form name = f action = test.asp post=method> <input type = text name = mac size = 10 value = "01:23:45:67:89:ab"><br> <input type = text name = ip size = 10 value = "123.45.67.89"><br> <input type = button value = Send onclick = "totalSjekk(mac.value,ip.value);"> </body></html> Lenke til kommentar
janfredrik Skrevet 24. mai 2006 Del Skrevet 24. mai 2006 <html> <head> <script> function totalSjekk(mac,ip) { if (sjekkMac(mac)) { if (sjekkIp(ip)) { f.submit(); }}} function sjekkMac(mac) { var reg ="^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"; if (mac.match(reg)) { return true; } else { alert( "Ugyldig Mac-nummer!" ); return false; }} function sjekkIp(ip) { var reg = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; if (ip.match(reg)) { return true; } else { alert( "Ugyldig Ip-nummer!" ); return false; }} </script> </head> <body> <form name = f action = test.asp post=method> <input type = text name = mac size = 10 value = "01:23:45:67:89:ab"><br> <input type = text name = ip size = 10 value = "123.45.67.89"><br> <input type = button value = Send onclick = "totalSjekk(mac.value,ip.value);"> </body></html> 6168681[/snapback] Tok vekk smileyen Lenke til kommentar
Toset Skrevet 24. mai 2006 Forfatter Del Skrevet 24. mai 2006 Takker og bukker, hyggelig med raske og hjelpsomme svar Hint: bruke CODE tagsene på all kode, slipper at oppsettet blir ødelagt, smilys og såny Lenke til kommentar
backup Skrevet 24. mai 2006 Del Skrevet 24. mai 2006 ^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$ Endelig! Takk for hintet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå