Foros del Web » Programando para Internet » PHP »

problema al cerrar sesion de formulario web usando session_destoy()

Estas en el tema de problema al cerrar sesion de formulario web usando session_destoy() en el foro de PHP en Foros del Web. holas. que tengo el siguiente problema. tengo un formulario validado con javascript y para que no me pierda los datos de los campos del mismo ...
  #1 (permalink)  
Antiguo 23/07/2010, 16:05
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
problema al cerrar sesion de formulario web usando session_destoy()

holas.

que tengo el siguiente problema. tengo un formulario validado con javascript y para que no me pierda los datos de los campos del mismo uso una session_start de php y al final del codigo uso session_destroy. pero es que esta funcion("destroy") me revienta el formulario ya que si e metido por ejemplo el nombre del distribuidor y luego le doy por ejemplo al boton enviar del formu y me salta el javascript por no haber rellenado los otros campos, se me recarga la pagina y pierdo toda la info que ya tenia metida........

os pongo el codigo como lo tengo

pagina1.php
empieza con session_start al principio de todo codigo

luego en validar2.php: tengo esto

Código PHP:
<?php

session_start
(); //Iniciamos el sistema de sessiones
//Cargamos las variables a la sesión


if ( ! isset($_POST['nombre']) OR ! $_POST['nombre']) //(Si no esta definido nombre) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
}
elseif ( ! isset(
$_POST['email']) OR ! $_POST['email']) //(Si no esta definido email) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
}
elseif ( ! isset(
$_POST['telefono']) OR ! $_POST['telefono']) //(Si no esta definido teléfono) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
}
elseif (isset(
$_POST['nombre']) AND $_POST['nombre'] AND isset($_POST['email']) AND $_POST['email'] AND isset($_POST['telefono']) AND $_POST['telefono']AND isset($_POST['comentario']) AND $_POST['comentario'])
{
    
$_SESSION['nombre'] = $_POST['nombre']; 
    
$_SESSION['email'] = $_POST['email']; 
    
$_SESSION['telefono'] = $_POST['telefono']; 
    
    

    
$nombre=$_POST['nombre'];
    
$email=$_POST['email'];
    
$telefono=$_POST['telefono'];
    
$comentario=$_POST['comentario'];
    
    
    
$ssql "insert into distribuidor (nombre, email, telefono, comentario) values (('$nombre'),('$email'),('$telefono'),('$comentario'))";
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    if (
mysql_query($ssql$conexion)){
        
        
header ("Location: secciondistribuidor.php");
        echo 
"sentencia ingresada!";
        
session_destroy();
    
    }elseif ({
        echo 
"no inserte nada!" ;
        
header ("Location: secciondistribuidor.php");
    }
    
    
    

}






?>
  #2 (permalink)  
Antiguo 23/07/2010, 16:09
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: problema al cerrar sesion de formulario web usando session_destoy()

lo puedes solucionar validando que solo destruya la sesion una vez que todo este bien

nota... la forma en que validas la veo fatal....

Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 23/07/2010, 16:16
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: problema al cerrar sesion de formulario web usando session_destoy()

masterojitos me podrias poner codigo pseudocodigo para entenderlo mejor?
  #4 (permalink)  
Antiguo 31/07/2010, 03:58
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: problema al cerrar sesion de formulario web usando session_destoy()

Ya medio e solucionado lo de cerrar sesion, lo e conseguido poniendo las variables de sesion y las $_POST al principio del script que valida...pero tengo un fallo al validar al campo del telefono yo quiero que se tengan que ingresar como minimo 9 digitos pero no lo consigo en el codigo php...en el de javascript si son menos de 9 me salta el mensaje de advertencia pero a la vez se me ingresa el distribuidor aunque alla ingresado menos de 9 numeros. os pongo el codigo....

Código PHP:
<?php

session_start
(); //Iniciamos el sistema de sessiones
//Cargamos las variables a la sesión
$_SESSION['nombre'] = $_POST['nombre']; 
$_SESSION['email'] = $_POST['email']; 
$_SESSION['telefono'] = $_POST['telefono']; 



$nombre=$_POST['nombre'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$comentario=$_POST['comentario'];

if ( ! isset(
$_POST['nombre']) OR ! $_POST['nombre']) //(Si no esta definido nombre) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
    exit;
}
elseif ( ! isset(
$_POST['email']) OR ! $_POST['email']) //(Si no esta definido email) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
    exit;
}
elseif ( ! isset(
$_POST['telefono']) OR ! $_POST['telefono']or $_POST['telefono']< 9//(Si no esta definido teléfono) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
    exit;
}
elseif (isset(
$_POST['nombre']) AND $_POST['nombre'] AND isset($_POST['email']) AND $_POST['email'] AND isset($_POST['telefono']) AND $_POST['telefono']AND isset($_POST['comentario']) AND $_POST['comentario'])
{

    
    
    
$ssql "insert into distribuidor (nombre, email, telefono, comentario) values (('$nombre'),('$email'),('$telefono'),('$comentario'))";
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    if (
mysql_query($ssql$conexion)){
        
        
header ("Location: secciondistribuidor.php");
        echo 
"sentencia ingresada!";
        
session_destroy();
    
    }else{
        echo 
"no inserte nada!" ;
        
header ("Location: secciondistribuidor.php");
    }
    
    
    

}


?>

En esta linea es donde se valida el campo telefono no se como poner el $_POST telefono para ke se tengan que ingresar como minimo 9 numeros lo tengo ahora asi:

Código PHP:
elseif ( ! isset($_POST['telefono']) OR ! $_POST['telefono']or $_POST['telefono']< 9)

lo tengo puesto asi $_POST['telefono'] < 9 .......

Etiquetas: cerrar, formulario
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 19:58.