Foros del Web » Programando para Internet » PHP »

Problema con sesion al redirigir la pagina

Estas en el tema de Problema con sesion al redirigir la pagina en el foro de PHP en Foros del Web. Hola amigos, Os planteo el problema: Tengo un formulario que envia unos campos de texto, antes de enviarlos los valido (con JavaScript) en el onsubmit ...
  #1 (permalink)  
Antiguo 08/06/2006, 10:54
 
Fecha de Ingreso: mayo-2006
Ubicación: Lliria - Valencia - España
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Problema con sesion al redirigir la pagina

Hola amigos,

Os planteo el problema:
Tengo un formulario que envia unos campos de texto, antes de enviarlos los valido (con JavaScript) en el onsubmit del form. Y luego ejecuto el action, que me vuelve a cargar la misma página y hago una comprobacion de que valor tiene un select del formulario, y según ese valor lo quiero enviar a una página o a otra.

Parece que ya he hecho esta pregunta antes, pero ahora es una union de las respuestas que me dieron, y el problema es que no se mezclarlas.

Este es el código que tengo en borrar.php

Código PHP:
<?
if(isset($_POST['tipo'])){
    
$host $_SERVER['HTTP_HOST'];
    
$uri rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
    
$bando 'bando.php';
    
$nota 'nota.php';
    
    if (
$_POST['tipo'] == "1"){
        
header("Location: http://$host$uri/$bando");
        exit;
        }
    elseif (
$_POST['tipo'] == "3"){
        
header("Location: http://$host$uri/$nota");
        exit;
?>

<form id="form1" name="form1" method="post" action="borrar.php" onsubmit="return valida(this)">

<label>
   <input name="dia_ini" type="text" size="2" maxlength="2" value="<? echo $_SESSION['dia_ini'];?>"/>&nbsp;&nbsp;              
</label>
<label>
    <input name="mes_ini" type="text" size="2" maxlength="2" value="<? echo $_SESSION['mes_ini'];?>"/>&nbsp;&nbsp;              
</label>
<label>
     <input name="ano_ini" type="text" size="4" maxlength="4" value="<? echo $_SESSION['ano_ini'];?>"/>
</label>

<select name="tipo">
  <option value="1" <? if ($_SESSION['tipo'] == "1") echo 'selected';?>>Bando</option>
  <option value="3" <? if ($_SESSION['tipo'] == "3") echo 'selected';?>>Nota informativa</option>
</select>
El problema es que en las páginas bando.php y nota.php, no puedo acceder a las variables de sesion que he guardado al principio de la pagina.

Gracias.
  #2 (permalink)  
Antiguo 08/06/2006, 10:56
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

Te falta agregar session_start() en tu codigo ademas que no se observa en donde estas inicializando tus variables de sesion.

Código PHP:
<? 
session_start
();
if(isset(
$_POST['tipo'])){ 
    
$host $_SERVER['HTTP_HOST']; 

.
.

Saludillos.
  #3 (permalink)  
Antiguo 08/06/2006, 10:59
 
Fecha de Ingreso: mayo-2006
Ubicación: Lliria - Valencia - España
Mensajes: 33
Antigüedad: 11 años, 7 meses
Puntos: 0
ya lo hago
Código PHP:
if (!isset($_SESSION)) {
  
session_name("borrar");
  
session_start();
  
$_SESSION['tipo'] = $_POST['tipo'];
  
$_SESSION['dia_ini'] = $_POST['dia_ini'];
  
$_SESSION['mes_ini'] = $_POST['mes_ini'];
  
$_SESSION['ano_ini'] = $_POST['ano_ini'];
}

if(isset(
$_POST['tipo'])){
    
$host $_SERVER['HTTP_HOST'];
    
$uri rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
.... 
O lo hago mal
  #4 (permalink)  
Antiguo 08/06/2006, 11:51
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 11 años, 7 meses
Puntos: 2
sip.

yo creo que esta mal..

por ejemplo... yo hago esto.

Código PHP:
<?php
 session_start
();
 
$var=$_SESSION['hoja'];
    
   
//INICIO DE SESSION PARA ADMINISTRADOR
   
if ($var==1)
   {
        if (
$_SESSION['snick']=='@')
        {
               
$nicka=trim(strip_tags($_POST['nicka']));
               
$pass=trim(strip_tags($_POST['pass']));
            
$_SESSION['snick']=trim(strip_tags($_POST['nicka']));
            
$_SESSION['spass']=trim(strip_tags($_POST['pass']));
        }
para que pueda primero iniciar mis variables de sessión si ya existen pues solamente las vuelve a retomar por que todavía no destruyo mi sesión. para destruirla uso esto:
Código PHP:
<?php
   session_start
();
   
session_destroy();
   require(
"funciones_validaciones.php");
   
cambiarpagina("index.php");
 
?>
por que si no pongo session_star(); en el primer lugar me manda un error..algo de que no esta sessión estar, debes de tener cuidado al poner también código HTML antes de este. el session_start(); tiene que estar antes que cualquier cosa. sopas. ojala y te ayude ne algo.
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 07:53.