Realizo una validación con JS, me dice que las cosas estan mal pero no se corta el proceso, sino que te advierte pero raliza la inserción a pesar de todo.
Os dejo el codigo a ver si alguien sabe que puede ser:
apc.php
Código PHP:
<?
include 'php/basepcim.php'; //este fichero hace la inserción en la base de datos cuando hay un submit
?>
<script type="text/javascript" language="javascript" src="../js/apc.js">
<form id="formulario" method="post" action="apc.php" onSubmit="return ValidaPC(this)" >
Nom del component:<input name="component" maxlength="32" type="text" value=""><br>
IP del component:<input name="IP" maxlength="25" type="text" value=""><br>
Direccio fisica ethernet (MAC):<input name="MAC" maxlength="25" type="text" value=""><br>
Comentaris:<textarea name="observacion" rows="3" cols="20"></textarea><br>
Padre:<SELECT name="pare">
<?
include 'php/basepcim.php';
$buscar = pg_query("SELECT id FROM x1d10_router");
while ($dades = pg_fetch_object($buscar)){
print("<option value=\"$dades->id\">$dades->id</option>");
}
?>
</SELECT>
<input type="submit" name="enviar" value="Send"/>
<input type="button" onclick="formReset()" value="Reset">
<input type="button" onclick="llenarPC(this.formulario)" value="Fill" />
apc.js
Código PHP:
function ValidaPC() {
var macv=/^[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-zf]{2}:[0-9a-zf]{2}$/;
var ipv=/^(([0|1]d{0,2})|2([0-4]|5(?![6-9]))?[0-9]?|d{0,2}).(([0|1]d{0,2})|2([0-4]|5(?![6-9]))?[0-9]?|d{0,2}).(([0|1]d{0,2})|2([0-4]|5(?![6-9]))?[0-9]?|d{0,2}).(([0|1]d{0,2})|2([0-4]|5(?![6-9]))?[0-9]?|d{0,2})$/;
var compov=/^w[.A-Za-z0-9]{0,28}$/;
var macform=formulario.MAC.value;
var ipform=formulario.IP.value;
var compo=formulario.component.value;
var OKMAC = macv.exec(macform);
var OKIP = ipv.exec(ipform);
var OKcompo = compov.exec(compo);
var OK=true;
if(!OKMAC){
alert('MAC incorrecta. El seu format ha de ser xx:xx:xx:xx:xx:xx, on x pot ser qualsevol digit hexadecimal');
OK=false;
}
if(!OKcompo){
alert('Nom no permès. El primer caracter ha de ser un alfanumeric, el nom pot incloure . i _ i la longitud maxima es 29');
OK=false;
}
if(!OKIP){
alert('IP incorrecta. El seu format ha de ser x.x.x.x, amb x menor que 256');
OK=false;
}
if(OK=="true"){
alert('Dades correctes');
return OK;
}
else{
alert('Dades incorrectes');
return OK;
}
}