Ver Mensaje Individual
  #9 (permalink)  
Antiguo 09/07/2013, 04:41
CopySat
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No consigo validar los campos del formulario

bueno después de unos pequeños retoques eh conseguido que me funcione mas o menos

OS COMENTO:

el 1º archivo: /AUTORELLENO/TECNICO.PHP
(QUE ES EL QUE COJE LOS DATOS DE LA BASE DE DATOS Y ME RELLENA EL CAMPO ID)

quedaria asi:
Código:
<?php
//Parte de la Configuracion
include("../Config/config.php") ;
$conex=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
$bd=mysql_select_db($database) or die ("error2".mysql_error()); 
// Con estas sentencias SQL evitaremos una inyección SQL
// Con esta sentencia SQL Creamos la consulta
$query="
SELECT ID_Empleado
From tecnicos
Order by ID_Empleado DESC 
Limit 1";
// Hacemos la consulta  
$result= mysql_query ($query) or die ("error3 <br>".mysql_error());
$resultado = mysql_result ($result, 0); //Extraemos el valor que nos interesa.
// Cierra la conexión con la base de datos 
mysql_close($conex); 
header('Location: ../New/Tecnico.php?id='.$resultado)
?>
el 2º archivo: /NUEVO/TECNICO.PHP
(QUE ES EL FORMULARIO QUE TENEMOS QUE RELLENAR)

quedaria asi:
Código:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!-- TemplateBeginEditable name="doctitle" -->
<LINK REL="Shortcut Icon" HREF="../Config/Imagenes/Copy.ico"> 
<title>Copisteria Imatge - AFEGIR</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link rel="stylesheet" type="text/css" href="../Config/CSS/HTML5_thrColFixHdr.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/Unificacion.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/formCssSINREPETICIONES.css"/>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>

<body>
	<div class="container">
  		<form class="jotform-form" action="../Insert/Comprobaciones/Tecnico.php" method="post" name="Form_31484046338354" id="31484046338354" accept-charset="utf-8">
        <div class="header">
          <h1>AFEGIR - TÈCNIC
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <img src="../Config/Imagenes/Copy.jpg" alt="Copisteria Imatge" width="309" height="114" id="Insert_logo" style="background-color: #C6D580;" /></h1>

        <!-- end .header --></div>
        
		<div class="content">
        <script src="../Config/JS/jquery-1.8.0.min.js" type="text/javascript"></script>
		<script src="../Config/JS/maskedinput.min.js" type="text/javascript"></script>
		<script src="../Config/JS/jotform.js" type="text/javascript"></script>
		<script type="text/javascript">
		JotForm.init(function(){
      		JotForm.description('input_4', 'Nom del Empelat');			
      		JotForm.description('input_3', 'Password');	
      		JotForm.description('input_5', 'Telèfon del Empelat');		
      		JotForm.setPhoneMaskingValidator( 'input_5_full', ' #########' );			
			 $('input_6').hint('ex: [email protected]');
      		JotForm.description('input_6', 'E-Mail');
      		JotForm.alterTexts({"alphabetic":"Aquest camp solament pot contenir lletres",
			                    "alphanumeric":"Aquest camp solament pot contenir lletres i *numeros",
								"confirmClearForm":"Estas segur que desitges netejar el formulari",
								"confirmEmail":"Correu electrònic no coincideix",
								"email":"*Direccion de correu INVALIDA",
								"gradingScoreError":"Puntuació total de només ha de ser menor o igual a",
								"incompleteFields":"Els camps requerits *estan incomplets. *Porfavor *completelos abans de continuar",
								"inputCarretErrorA":"L'entrada no pot ser menor que el valor mínim:",
								"inputCarretErrorB":"L'entrada ha de ser menor al valor:",
								"lessThan":"La seva puntuació ha de ser menor que o igual a",
								"maxDigitsError":"El màxim de dígits permès és",
								"numeric":"Aquest camp solament pot contenir *numeros",
								"pleaseWait":"*Porfavor esperi...",
								"required":"Aquest Camp és Obligatori",
								"requireEveryRow":"Es requereix que cada fila.",
								"requireOne":"Almenys un camp requerit.",
								"submissionLimit":"Ho sento! Només es permet una entrada.<*br>Múltiples enviaments estan desactivats per a aquest formulari.",
								"uploadExtensions":"Només pot carregar arxius següents:",
								"uploadFilesize":"Grandària de l'arxiu no pot ser major que:"});
	   });
       </script>
       <div class="form-all">
         <ul class="form-section">
          <li class="form-line form-line-column" id="id_1">
        		<label class="form-label-top" id="label_1" for="input_1">ID de L'empleat<span class="form-required">*</span></label>
		        <div id="cid_1" class="form-input-wide">
			<input type="text" class=" form-textbox validate[required, Alphabetic]" data-type="input-textbox" id="input_1" name="ID_Empleado" size="30" value="<?=$_GET['id']+1?>" readonly/>
                </div>
	      </li> 
          <li class="form-line form-line-column" id="id_4">
        	<label class="form-label-top" id="label_4" for="input_4">Nom de L'empleat<span class="form-required">*</span></label>
        		<div id="cid_4" class="form-input-wide">
        			<span class="form-sub-label-container">
                        <input type="text" class=" form-textbox" data-type="input-textbox" id="input_4" name="Nombre" size="30" />
                		
               		</span>
        		</div>
      	</li>
	      <li class="form-line form-line-column" id="id_3">
          		<label class="form-label-top" id="label_3" for="input_3">Password<span class="form-required">*</span></label>
		    <div id="cid_3" class="form-input-wide">
        		<input type="password" class=" form-textbox validate[required, Numeric]" data-type="input-textbox" id="input_3" name="Pass" size="30" required />
        	</div>
     	 </li>

      	<li class="form-line form-line-column" id="id_5">
        	<label class="form-label-top" id="label_5" for="input_5"> Telèfon </label>
            <div id="cid_13" class="form-input-wide">
				<input data-type="mask-number" class="mask-phone-number form-textbox" type="tel" name="Telefono" id="input_5_full" autocomplete="off">
            	<label class="form-sub-label" for="input_5_full"> </label>
	        </div>
    	</li>
      	<li class="form-line form-line-column" id="id_6">
        	<label class="form-label-top" id="label_6" for="input_6"> E-Mail </label>
	        <div id="cid_" class="form-input-wide">
    	      <input type="email" class=" form-textbox validate[required, Email]" id="input_6" name="Email" size="30" />
			</div>
      	</li>
    </ul>
     
   
      <br><br><br><br><br>
		<!-- end .content --></div>
        
		<div class="footer">
	   <button id="input_2" type="Enviar" class="form-submit-button" >Enviar Formulari</button>
	    &nbsp;
   		<button id="input_reset_2" type="reset" class="form-submit-reset" >Natejar Formulari</button>
  	  <!-- end .footer --></div>
        </form> 
  <!-- cierra el codigo php -->
	<!-- end .container -->
</body>
</html>
i el 3º archivo : /COMPROBACIONES/TECNICO.PHP
(ESTE ES EL QUE MAS EH MODIFICADO, UNIFICANDO EL DE LAS COMPROBACIONES Y EL INSERTAR EN LA BASE DE DATOS)

y quedaria asi
Código:
<?php
include("../../Config/config.php") ;

$errores = array();
 
if (empty($_POST['Pass'])) {
     $errores[] = 'Falta introduir un "Pass"';
}
if (empty($_POST['Nombre'])) {
     $errores[] = 'Falta indicar el "Nom"';
}
if (empty($_POST['Email'])) {}
	else{ 
	if (!preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/", $Email)) {
     $errores[] = 'La direccio de '.$Email.' no esta ben escrita';		
	}
	}

 
if (count($errores) <= 0) {

$conex=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
$bd=mysql_select_db($database) or die ("error2".mysql_error()); 
// Con estas sentencias SQL evitaremos una inyección SQL
$ID_Empleado = $_POST['ID_Empleado'];
$Pass =$_POST['Pass'];
$Nombre =$_POST['Nombre'];
$Telefono =$_POST['Telefono'];
$Email =$_POST['Email'];
// Con esta sentencia SQL Creamos la consulta
$query="
INSERT INTO tecnicos 
(ID_Empleado,Pass,Nombre,Telefono,Email)
VALUES 
('".$ID_Empleado."','".$Pass."','".$Nombre."','".$Telefono."','".$Email."')
";
// Hacemos la consulta  
mysql_query ($query) or die ("error3 <br>".mysql_error());
// Cierra la conexión con la base de datos 
mysql_close($conex); 
header('Location: ../../Log/Tecnico.php');
}else {

     foreach($errores as $error) {
		 echo '<p>'.$error.'</p>';
		 ?>
		<script type="text/javascript">

		alert(<?php '<p>'.$error.'</p>' ?>);
		</script>
		<?php
     }
	 ?>
	<button id="GoBack" type="button" onclick="history.back()" >Tornar</button>
	<?php

}

DE ESTA MANERA,
1º RECUPERA LOS DATOS DE LA BASE,
2º EL USUARIO RELLENA EL FORMULARIO,
3º AL DARLE AL SUMBIT, SE EJECUTA LAS COMPROBACIONES:
I ESTAN MAL, MUESTRA UNA PAGINA INDICANDO QUE CAMPOS FALTAN
(Y UN BOTON PARA VOLVER AL FORMULARIO PARA PODER RELLENAR LO QUE FALTA PERO SIN LIMPIAR LOS CAMPOS RELLENADOS CON ANTERIORIDAD)
I SI ESTAN BIEN HACE LA INSERCION EN LA BASE DE DATOS


PARA ACABAR, SIMPLEMENTE MUESTRO EL: /LOG/TECNICO.PHP PARA VERCOMO HA QUEDADO LA BASE DE DATOS