Foros del Web » Programando para Internet » PHP »

problema con cerrar sesion_start()

Estas en el tema de problema con cerrar sesion_start() en el foro de PHP en Foros del Web. que no puedo cerrar la sesion que e iniciado en el formulario para conservar los datos en caso de que la validacion por javascript salte ...
  #1 (permalink)  
Antiguo 17/07/2010, 14:26
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
problema con cerrar sesion_start()

que no puedo cerrar la sesion que e iniciado en el formulario para conservar los datos en caso de que la validacion por javascript salte y recarge la pagina. pero cuando escribo sesion_destroy(); no se que pasa que no me aparece en el codigo como si fuera una funcion y no me destruye la sesion os pongo el codigo tal como lo tengo, haber si me podeis ayudar:
Código:
<form name="miformu" method="post" action="validar.php"  onSubmit="revisar(this);">
<ul>

<li>	Nombre: <input type="text" name="nombre" id="nombre" size="40" value="<?php if (isset($_SESSION['nombre'])){ echo $_SESSION['nombre']; } ?>"/> </li>
	
	<li>Email: <input type="text" name="email" id="email" size="40"value="<?php if (isset($_SESSION['email'])){ echo $_SESSION['email']; } ?>"/> </li>
	
	
	<li>Telefono: <input type="text" name="telefono" id="telefono" size="9"value="<?php if (isset($_SESSION['telefono'])){ echo $_SESSION['telefono']; } ?>"/> </li>


<li>Comentarios:

<textarea cols="30" rows="7" name="comentario" id="comentarios"> </textarea>	
</li>


<li>

<input type="submit" name="enviar1" value="Enviar"id="enviar">
</li>
</ul>
</form>
validar.php:

Código PHP:
<?php
//iniciamos la sesion
session_start();
//guardamos los valores que fueron enviados por el formulario en variables de sesion
$_SESSION['nombre'] = $_POST['nombre'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['telefono'] = $_POST['telefono'];
//haces la validacion de los mismos...
if (($_POST['nombre']=='')or ($_POST['nombre']!=is_numeric()) )
{
echo 
"tienes que introducir un nombre";
header ("Location: secciondistribuidor.php");
}
else
{
    
session_destroy();
exit;
    
}

if (
$_POST['email']==''){
    
    echo 
"tienes que introducir un email";
    
header ("Location: secciondistribuidor.php");
    }
    else
    {
    
session_destroy();
        exit;
    
        }

if ((
$_POST['telefono']=='')or ($_POST['nombre']!=is_numeric())){
    
//en este if pretendo que si el campo telefono esta vacio o no es numerico volver al formulario para meter bien los datos
    //decidme si esta bien por que a mi no me funciona
    
echo "tienes que introducir un telefono y no puedes introducir letras";
    
header ("Location: secciondistribuidor.php");
}
else
{
    
//aqui la sesion destroy no me aparece como funcion si no como simple texto y no me hace nada
    
session_destroy();
    
}
  #2 (permalink)  
Antiguo 17/07/2010, 16:58
 
Fecha de Ingreso: enero-2010
Mensajes: 191
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: problema con cerrar sesion_start()

La verdad que estas preguntas no son dignas de responderse, una cosa es estar tratando de aprender y otra es no leer en lo mas mínimo nada.

Busca en el manual:

Código:
operadores en php
session_start
session_destroy
isset
is_numeric
if
htmlentities
header # especialmente donde dice NO DEBE HABER SALIDA ANTES DE LLAMAR ESTA FUNCION
De todas maneras algo así debería minimamente servirte, se puede hacer mucho mejor pero esta bien educativo.

Código PHP:
<?php

session_start
(); //Iniciamos el sistema de sessiones

if ( ! isset($_POST['nombre']) OR ! $_POST['nombre']) //(Si no esta definido nombre) o (si no contiene nada ni siquiera un espacio en blanco)
{
      echo 
"<div>Debe ingresar un nombre</div>";
}
elseif ( ! isset(
$_POST['email']) OR ! $_POST['email']) //(Si no esta definido email) o (si no contiene nada ni siquiera un espacio en blanco)
{
      echo 
"<div>Debe ingresar un email</div>";
}
elseif ( ! isset(
$_POST['telefono']) OR ! $_POST['telefono']) //(Si no esta definido teléfono) o (si no contiene nada ni siquiera un espacio en blanco)
{
      echo 
"<div>Debe ingresar un telefono</div>";
}
elseif (isset(
$_POST['nombre']) AND $_POST['nombre'] AND isset($_POST['email']) AND $_POST['email'] AND isset($_POST['telefono']) AND $_POST['telefono'])
{

//Cargamos las variables a la sesión
$_SESSION['nombre'] = $_POST['nombre']; 
$_SESSION['email'] = $_POST['email']; 
$_SESSION['telefono'] = $_POST['telefono']; 

//Redirigimos a la sección del distribuidor
header ("Location: secciondistribuidor.php");

}

?><form name="miformu" method="post" action="validar.php"  onSubmit="revisar(this);">
<ul>

<li>    Nombre: <input type="text" name="nombre" id="nombre" size="40" value="<?php if (isset($_SESSION['nombre'])) echo htmlentities($_SESSION['nombre']); ?>"/> </li>
    
    <li>Email: <input type="text" name="email" id="email" size="40"value="<?php if (isset($_SESSION['email'])) echo htmlentities($_SESSION['email']); ?>"/> </li>
    
    
    <li>Telefono: <input type="text" name="telefono" id="telefono" size="9"value="<?php if (isset($_SESSION['telefono'])) echo htmlentities($_SESSION['telefono']); ?>"/> </li>


<li>Comentarios:

<textarea cols="30" rows="7" name="comentario" id="comentarios"> </textarea>    
</li>


<li>

<input type="submit" name="enviar1" value="Enviar"id="enviar">
</li>
</ul>
</form>

Última edición por abcdefghi; 17/07/2010 a las 17:03
  #3 (permalink)  
Antiguo 17/07/2010, 17:43
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: problema con cerrar sesion_start()

gracias compi

Etiquetas: cerrar
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 01:15.