Gå til innhold

Sjekke gyldig MAC og IP i php?


Anbefalte innlegg

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 av dominizer
Lenke til kommentar
Videoannonse
Annonse

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

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 av backup
Lenke til kommentar
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
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

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

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

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
<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 :whistle:

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...