Ver Mensaje Individual
  #15 (permalink)  
Antiguo 03/07/2011, 11:58
Avatar de Sanchy_com
Sanchy_com
 
Fecha de Ingreso: marzo-2011
Ubicación: Uruguay
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 5
Respuesta: validacion de telefono con php

Cita:
Iniciado por albertrc Ver Mensaje
ya he puesto las variables en el value pero tengo un problema si no pongo nada me sale 0 porque valido las variables con (int) por cuestiones de seguridad sql injection xss i otra historias

el submit no me funciona o es porque tanto en el name como value tengo registro
<input type="submit" name="registro" value="Registro"/><br/>

si tengo muchos campos podria poner el if submit cogiendo todo el formulario no
if( isset($_POST['submit']))
{

}
ese if esta muy bien. el problema es donde lo pones.

a ver. si vos haces un if lo que este dentro del if se va a ejecutar solo cuando se cumplan las condiciones. si vos pones el formulario dentro del if nunca se va a mostrar.

Yo separaría todo lo que es validacion y el formulario por otro lado.

te muestro un ejemplo?

Código PHP:
<?php
                        
if( isset($_POST['submit']) ) {
                            
$succesful TRUE;
                            if( isset(
$_POST['empresa']) && $_POST['empresa'] != '' $succesful FALSE//texto antibots        
                            
if(! isset($_POST['nombre']) || trim($_POST['nombre']) == '' || trim($_POST['nombre']) == 'Nombre')  {
                                
$succesful FALSE;
                                
$error_nombre '';
                            }
                            if(! isset(
$_POST['telefono']) || trim($_POST['telefono']) == '' || trim($_POST['telefono']) == 'Telefono')  {
                                
$succesful FALSE;
                                
$error_telefono '';
                            }
                            if(! isset(
$_POST['email']) || trim($_POST['email']) == '' || trim($_POST['email']) == 'E-mail') {
                                
$succesful FALSE;
                                
$error_email '';    
                            }
                            if(! isset(
$_POST['mensaje']) || trim($_POST['mensaje']) == '' || trim($_POST['mensaje']) == 'Escribanos un mensaje') {
                                
$succesful FALSE;
                                
$error_mensaje '';    
                            }                
                            if( 
$succesful == TRUE ) {                                    
                                
$nombre strip_tags $_POST['nombre'] );        
                                
$telefono strip_tags $_POST['telefono'] );
                                
$email strip_tags $_POST['email'] );
                                
$mensaje strip_tags $_POST['mensaje'] );            
                                    
                                
$to '[email protected]';
                                
$subject "Mensaje desde pagina";
                                
$message 'Mensaje de: ' $nombre ' - ' .  $email ' - ' $telefono "\n\n" $mensaje;                    
                                
$header "From: Sanchy.com <[email protected]>";
                                
                                
$mail_sent mail($to$subject$message$header);
                                
                                if(
$mail_sent == TRUE) {
                                
                                    
//ingresar datos a la BD
                                    
                                
}
                                
                        }    
                        
                    
?>

Código HTML:
<form id="contacto-form" action="contacto.php#mensaje-enviado" method="post">           
					
						<?php if( isset($error_nombre) ) : ?>
							<div class="error-active">							
						<?php endif; ?>     
                                <p class="error">Por favor escrib&iacute; tu nombre:</p><br/>
                                <input type="text" class="input" value="<?php if(isset($_POST['nombre'])) echo $_POST['nombre']; else echo 'Nombre'; ?>" name="nombre" /><br/>
						<?php if( isset($error_nombre) ) : ?>
							</div><!-- .error-active -->							
						<?php endif; ?>     
							
							
						<span style="display:none">
							<input type="text" class="input" value="" name="empresa" /><br/>
						</span>
						
						
						<?php if( isset($error_telefono) ) : ?>
							<div class="error-active">							
						<?php endif; ?>     
								<p class="error">Por favor escrib&iacute; un tel&eacute;fono:</p><br/>  
								<input type="text" class="input" value="<?php if(isset($_POST['telefono'])) echo $_POST['telefono']; else echo 'Telefono'; ?>" name="telefono" /><br/>   
						<?php if( isset($error_telefono) ) : ?>
							</div><!-- .error-active -->							
						<?php endif; ?>          
							 
							 
						<?php if( isset($error_email) ) : ?>
							<div class="error-active">							
						<?php endif; ?>     
								<p class="error">Por favor escrib&iacute; un e-mail:</p><br/>
								<input type="text" class="input" value="<?php if(isset($_POST['email'])) echo $_POST['email']; else echo 'E-mail'; ?>" name="email" /><br/>
						<?php if( isset($error_email) ) : ?>
							</div><!-- .error-active -->							
						<?php endif; ?>  
						
						
						<?php if( isset($error_mensaje) ) : ?>
							<div class="error-active">							
						<?php endif; ?>     
								<p class="error">Parece que olvidaste escribir un mensaje:</p><br/>
								<textarea rows="0" cols="0" class="textarea" name="mensaje"><?php if(isset($_POST['mensaje'])) echo $_POST['mensaje']; else echo 'Escribanos un mensaje'; ?></textarea><br/>    
						<?php if( isset($error_mensaje) ) : ?>
							</div><!-- .error-active -->							
						<?php endif; ?>                  
						
						
						<?php if( isset($mail_message) ) : ?>
							<div class="error-active">							
						<?php endif; ?>     
							<p class="error errorbig"><?php echo $mail_message; ?></p><br/>               
                                <input type="submit" class="submit" value="Enviar mensaje" name="submit" />
						<?php if( isset($mail_message) ) : ?>
							</div><!-- .error-active -->							
						<?php endif; ?>      
                        <div id="mensaje-enviado"></div>
						
					</form> 

Asi, validando cada campo por separado, cuando un campo esta erroneo:

- Se setea TRUE una variable de error para cada campo, luego en el HTML si la variable seteada para el campo correspondiente esta en TRUE, haces todo lo que quieras hacer y mostrar


Espero te sirva de algo