Foros del Web » Programando para Internet » PHP »

falla en formulario de contacto - ayuda con $_SESSION

Estas en el tema de falla en formulario de contacto - ayuda con $_SESSION en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/10/2008, 16:42
 
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...
  #2 (permalink)  
Antiguo 30/10/2008, 17:04
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

donde defines esta variable

$_SESSION['envio'];

si no esta definida nunca entrara el if
  #3 (permalink)  
Antiguo 31/10/2008, 16:26
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

hola, la variable $_SESSION['envio']se define en:
Cita:
if($_SESSION['error']=""){
$_SESSION['envio']="ok";

osea, la secuencia es:

si ni esta enviar esta vacia, muestra el formulario. en caso de que enviar no este vacia,
dependiendo del valir de envia, primero valida el formulario y en caso que todo este bien, recarga la pagina posterior a setea envia a "OK". al recargar, si envia ="OK" envia el mail.

saludos.


si alguien me puede dar una mano lo voy a agradecer!!!!! necesito ayuda, ya que me parece que esta bien el codigo... pero evidenemente algo falla....
  #4 (permalink)  
Antiguo 31/10/2008, 16:45
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

Que tal binagol, compañero la verdad no entiendo lo que pretendes hacer podrias ser un poco mas especifico y escribir correctamente?




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #5 (permalink)  
Antiguo 31/10/2008, 17:08
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

hola, voy a explicar lo que tendria que hacer el codigo:

si esta $enviar vacia, osea nunca se envio el formulario, muestra el formulario de contacto, al enviar el formulario recarga la pagina...

en caso que $enviar isset, ose despues de enviar el formulario, entra en juego otra parte del codigo, donde, dependiendo del valor de $ENVIA, HACE:

se valida el formulario, el caso de que la validacion no sea correcta, va cargando los diferentes errores en $ERROR. luego, en caso de que $error="" setea la variable $envia="OK". y recarga la pagina.

en caso que $envia sea "OK", envia el mail y avisa el envio...
eso se ve en el codigo... y creo que esta encolumnado o tabulado de modo que se puede distinguir.....

espero que esto sirva para que me puedan ayudar a determinar la falla en el codigo....

les recuerdo, el codigo funcionando, esta en:

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

Muchas gracias Y suerte a todos....
  #6 (permalink)  
Antiguo 31/10/2008, 18:38
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

con lo sencillo que es hacer un form de contacto y que te llegue por email, creo que te estas complicando demasiado.

a lo mejor me equivoco y tu programas mejor.

el codigo lo hiciste tu desde cero o te lo descargaste de algun sitio??


Un saludo
  #7 (permalink)  
Antiguo 01/11/2008, 06:42
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

ese codigo lo hice desde cero. hace un tiempo use uno bajado de la web, para empezar a pprender..

y, lo hice lo mas sencillo que pude...

si te parece que podria ser mas corto, decime por donde empezar, o como estructurarlo, una idea que con gusto la tratare de aplicar, pero que tenga:

1) el forumlario
2)que valide, y en caso de error mande nuevamente al formulario.... pero indicando el error
3)y encaso qu valide ok todo, mande el mail y avise del envio....

y por ultimo, que este todo en un solo archivo....esa es la parte que complica todo.......

ese codigo que subi, es un esquema del codigo final... osea, saque muchoo html, injected headers, etc...
pero para solucionar mi problema, es lo mismo...


si alguien me puede dar una mano... ya que es uno de los primeros codigos que hago desde cero, (aplicando muchas cosas que me explicaron anteriormente en este foro.....)

se lo voy a agradecer....

Muchas GRACIAS DE ANTEMANO Y SUERTE!...
  #8 (permalink)  
Antiguo 01/11/2008, 08:30
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

por mas que pruebo el codigo en mi server local, siempre me sale el mensaje de :


consulta realizada satisfactoriamente

creo que no deberias enrevesar tanto el codigo y usar el ejemplo de APORTES Y SISTEMAS PHP del foro.

Un saludo
  #9 (permalink)  
Antiguo 02/11/2008, 17:00
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: falla en formulario de contacto - ayuda con $_SESSION

hola, que queres decir con "enrevesar"???

... por otra parte....voy a ver el ejemplo que y en aportes y sistemas php del foro... aver si eso soluciona mi problema....

de todas formas, me gustaaria solucionar la falla en este codigo.... :(

si alguien ve la falla... agradeceria que me avise.... para poder corregirla....


Muchas Gracias de antemano a todos....!! y muchas gracias a jaronu!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:19.