Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2013, 10:53
Avatar de dafnemartinezs
dafnemartinezs
 
Fecha de Ingreso: febrero-2013
Ubicación: Murcia
Mensajes: 23
Antigüedad: 11 años, 2 meses
Puntos: 1
Pregunta Validación de un formulario

Muy buenas. Necesito ayuda con un formulario. No tengo muy claro como se hace. Os pongo mi código para ver si me podéis ayudar - dirigir.


Página del php que valida el formulario:
Código PHP:
<?php
    $nombre 
$_GET['nombre'];
    
$telefono=$_GET['telf'];
    
$email=$_GET['email'];
    
    
$nombreC=false;
    
$telefonoC=false;
    
$emailC=false;
    
    
$datosRecibidos=false;
    
$datosCorrectos=false;
    
    if(
$nombre=="" || $telefono=="" || $email==""){
        
$datosRecibidos=false;
        echo 
'<p>Faltan datos por rellenar</p><br>';
    }else{
        
//Nombre
        
        
if(preg_match('[^A-Za-z]'$nombre)){
            
$nombreC=true;
        }else{
            
$nombreC=false;
            echo 
'<p>El nombre solo puede contener letras</p><br>';
        }
        
        
//Telefono
        
if(is_int($telefono)){
            if(
preg_match('[^0-9]{9}',$telefono)){
                
$telefonoC=true;
            }else{
                echo 
'El telefono debe contener 9 digitos.';
            }
        }else{
            echo 
'<p>El telefono solo puede contener numeros.</p> <br>';    
        }
        
        
//Email
        
if(preg_match('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$^'$email)){
            
$emailC=true;
        }else{
            echo 
'<p>Email incorrecto.</p><br>';
        }
        
        if(
$nombreC && $telefonoC && $emailC){
            echo 
'<P>DATOS ENVIADOS CORRECTAMENTE</p> <br>' ;
        }
    }
    
    

?>


Página del formulario:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
	<form action="validar_formulario.php" method="get">
    	<table width="600" border="1">
          <tr>
            <td>Nombre:</td>
            <td><input name="nombre" type="text" /></td>
          </tr>
          <tr>
            <td>Telefono:</td>
            <td><input name="telf" type="text" maxlength="9" /></td>
          </tr>
          <tr>
            <td>Email:</td>
            <td><input name="email" type="text" size="80" /></td>
          </tr>
          <tr>
            <td><input name="enviar" type="submit" value="ENVIAR"/></td>
            <td><input name="borrar" type="reset" value="BORRAR" /></td>
          </tr>
        </table>

    </form>
		
</body>
</html> 


Las dudas son las siguientes:
1ª-> No se como hacer para que en el teléfono haya que introducir obligatoriamente 9 dígitos.
2ª-> Debo tener los if's mal hechos porque no me responde como debería. Si alguien le puede echar un ojo lo agradecería.
3ª-> ¿Es posible que, cuando encuentre un error en el php, te rediriga a la pagina html en el punto donde se ha producido el error? Por ejemplo, si en el nombre mete un número, que te diga el error y te mande al campo de texto del nombre.

De momento creo que ya esta. Espero que me podáis ayudar. Muchas gracias a todos por adelantado.