Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2008, 16:42
binagol
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
falla en formulario de contacto - ayuda con $_SESSION

hola, estaba tratando de hacer un formulario de contacto en un solo archivo, con 3 etapas
1)formulario
2) validacion
3)envio de mail o en caso de fallar la validacion aviso de error (echo"";)

el problema que tengo, es que no funciona. siempre recarga el formulario y a veces envia...
supongo que es un problema con las variables de session.... pero no se bien...

el codigo es:

Código PHP:
<? 
session_start
();

if (empty(
$_POST['enviar'])){
        echo  
$_SESSION['error']; $_SESSION['error']=''?>    
        
    <!-- Formulario de contacto -->
    <form action="<?=$PHP_SELF?>" method="post"  name="formulario" id="formulario">
        Nombres:(*)<input name="nombre" id="nombre" size="20" maxlength="200" />
        Apellido:(*)<input name="apellido" id="apellido" size="20" maxlength="200" />
        Tel&eacute;fono: (*)<input name="phone" id="phone" size="15" maxlength="200" />
        Movil:<input name="cel" id="cel" size="15" maxlength="200" />
        E-mail: (*)<input name="email" id="email" size="40" />
        Comentarios: (*)<textarea name="comentarios" cols="50" rows="5"  id="comentarios"></textarea>
        <input name="enviar" type="submit" id="enviar" value="    Enviar   ">
        <input name="Reset" type="reset" value="    Borrar   "  />                        
    </form>            

<? }else{ 

    if(isset(
$_SESSION['envio'])){

        
// Envio de mails
        
mail("[email protected]""consulta web","
              $apellido $name realizo una consulta:    
            $comentarios

            Nombre: $name
            Apellido: $apellido
            Telefono: $phone
            Celular: $cel
            e-mail: $email
            
            "
,$headers);
        
//AVISO DE ENVIO 
        
echo 'consulta realizada satisfactoriamente';
            
                
        
// Reseteo de variables
            
$_SESSION['envio']="";    
    }else{ 

        
$nombre=$_POST['nombre'];
        
$apellido=$_POST['apellido'];
        
$phone=$_POST['phone'];
        
$cel=$_POST['cel'];
        
$email=$_POST['email'];
        
$comentarios=$_POST['comentarios'];
        
               if(!
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email)){        
          
$error.="Direccion de mail Incorrecta \n";
        }
        if( 
$nombre=NULL strlen($nombre) < | !eregi("^[a-z]+$"$nombre) ){        
           
$_SESSION['error'].="Nombre incorrecto \n";
        }
        if( 
$apellido=NULL strlen($apellido) < | !eregi("^[a-z]+$"$apellido) ){        
           
$_SESSION['error'].="Apellido incorrecto \n";
        }
        if( 
$phone=NULL strlen($phone) < | !eregi("^[0-9]+$"$phone) ){        
           
$_SESSION['error'].="Numero de Telefono Incorrecto \n";
        }
        if( 
$cel=NULL strlen($cel) < | !eregi("^[0-9]+$"$cel) ){        
           
$_SESSION['error'].="Numero de Telefono Incorrecto \n";
        }        
        if(
$comentarios=NULL strlen($comentarios) < ){        
           
$_SESSION['error'].="comentario Incorrecto \n";
        }
        if(
$_SESSION['error']=""){
           
$_SESSION['envio']="ok";
          echo
'<script language="JavaScript">
                document.location.href="contacto.php"
                </script>'
;
         }else{
           
$_SESSION['envio']="";
          echo
'<script language="JavaScript">
                document.location.href="contacto.php"
                </script>'
;         }
    }       
    
}


?>

en caso de que quieran ver el codigo funcionando, lo subi a:

http://www.ooamc.com.ar/contacto.php

muchas gracias de antemano! y suerte...