Foros del Web » Programando para Internet » PHP »

Sesiones: no puedo pasar los datos de una pagina a otra

Estas en el tema de Sesiones: no puedo pasar los datos de una pagina a otra en el foro de PHP en Foros del Web. Buenas gentes!!!! Bien, eso es. No puedo hacer que pasen los datos de una pagina a otra en el sitio. Realmente no se como hacer ...
  #1 (permalink)  
Antiguo 07/12/2005, 12:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 4 meses
Puntos: 1
Sesiones: no puedo pasar los datos de una pagina a otra

Buenas gentes!!!!

Bien, eso es.
No puedo hacer que pasen los datos de una pagina a otra en el sitio.
Realmente no se como hacer lo de las sesiones, mas o menos me guie con el autentificator de Cluster, pero tampoco lo pude hacer funcionar.
Seguido les agrego los codigos
Empieza con un formularo usuario(user) y password (pass)

que tiene como acciona esto:
Código PHP:

$user
=$_POST['user'];
$pass=$_POST['pass'];

//if ($user=="" || $pass==""){
//    header("Location: index.php?error_login=2");
//    }

require ("setup/log.con.inc.php");

//connect to database
if ($user && $pass){
    
$db_conexion mysql_connect($sql_host,$sql_usuario,$sql_pass) or die (header("Location: index.php?error_login=0"));
    
mysql_select_db($sql_db) or die (header("Location: index.php?error_login=0"));
//make query
$query "SELECT Usuario,Clave,IdUsuario FROM $sql_tabla WHERE Usuario = '$user' AND Clave = '$pass'";
$usuario_consulta mysql_query($query) or die (header("Location: index.php?error_login=1"));


//see if there's an EXACT match
$num mysql_num_rows($usuario_consulta);
if (
$num == 1){

    
// eliminamos barras invertidas y dobles en sencillas
    
$user stripslashes($user);

    
// almacenamos datos del Usuario en un array para empezar a chequear.
     
$usuario_datos mysql_fetch_array($usuario_consulta);
  
    
// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
    
mysql_free_result($usuario_consulta);
    
// cerramos la Base de dtos.
    
mysql_close($db_conexion);
    
    
// chequeamos el nombre del usuario otra vez contrastandolo con la BD
    // esta vez sin barras invertidas, etc ...
    // si no es correcto, salimos del script con error 4 y redireccionamos a la
    // página de error.
    
if ($user != $usuario_datos['Usuario']) {
           
header("Location: index.php?error_login=0");
        exit;
        }

    
// si el password no es correcto ..
    // salimos del script con error 3 y redireccinamos hacia la página de error
    
if ($pass != $usuario_datos['Clave']) {
        
header ("Location: $redir?error_login=3");
        exit;}

    
// Paranoia: destruimos las variables login y password usadas
    
unset($user);
    unset(
$pass);

    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
    
     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start();

    
// Paranoia: decimos al navegador que no "cachee" esta página.
    
session_cache_limiter('nocache,private');
    
    
// Asignamos variables de sesión con datos del Usuario para el uso en el
    // resto de páginas autentificadas.

    
$_SESSION['user'] = $usuario_datos['Usuario'];
    
$_SESSION['pass'] = $usuario_datos['Clave'];
    
$_SESSION['id'] = $usuario_datos['IdUsuario'];

    
   } 
}
print 
$_SESSION['user'];
echo 
"</P>";
print 
$_SESSION['pass'];
echo 
"</P>";
print 
$_SESSION['id'];
header ("Location: manual.php");
?> 

Seguido, tengo una pagina llamada manual.php. En ella puse un var_dump para saber si las variables de sesion aun existian, y tambien llame a las variables, tal como hago al terminar :
print $_SESSION['user'];
echo "</P>";
print $_SESSION['pass'];
echo "</P>";
print $_SESSION['id'];

pero me tira null...

que estoy haciendo mal?
o mejor dicho, que deberia poner yo para que cuando entre a manual me siga tomando las variables de la sesion
__________________
Diseñador y Desarrolador en Proyecto81 WebStudio

Última edición por daenor; 07/12/2005 a las 13:54
  #2 (permalink)  
Antiguo 07/12/2005, 13:06
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
mmm no lo entiendo ... queres pasar las variables del usuario a la pagina manual.php ... y ahi imprimirlas ???
en la pagina manual.php haces un session_start(); para despues poder consultar las variables de session ?
si no queres pasar las variables del usuario a manual.php, y queres pasar otro tipo de datos... porque no pasas las variables por la URL, y las recuperas con el metodo $_GET['variable'];???

te recomiendo que cuando pongas un post con codigo .. lo pongas entres las etiquetas asi se hace mas facil la lectura ..
[PHP]

salu2
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 07/12/2005, 13:51
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 4 meses
Puntos: 1
Mil disculpas, no conocia lo de las etiquetas [PHP]
bien, no, quiero pasar todo por un post.

Por otro lado, si, quiero que manual.php traiga las variables para usarlas ahi tambien.

ahora, no, no sabia lo de session_start() crei que una vez que se hacia, ya no era necesario!
entonces lo necesito por cada pagina que quiera usar las variables?
debere meter un include.
de todas formas, hice eso, y al inicial pagna manual, m equedo esto:

Código PHP:
<?PHP
session_start
();

print 
$_SESSION['user'];
echo 
"</P>";
print 
$_SESSION['pass'];
echo 
"</P>";
print 
$_SESSION['id'];

var_dump($_SESSION['Usuario']);
echo 
"</P>";
var_dump($_SESSION['Clave']);
echo 
"</P>";
print 
"hola";
?>
espero eso sea de ayuda

bien, muchisimas gracias y sigo trabajkando en eso
__________________
Diseñador y Desarrolador en Proyecto81 WebStudio

Última edición por daenor; 07/12/2005 a las 14:07
  #4 (permalink)  
Antiguo 07/12/2005, 14:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En tu código (tomastes algo de "Autentificator"? parece que sí ..), si te fijas bien .. defines un nombre de sesión (cosa que es totalmente opcional .. pero si tomas código de aquí y de allá hay que ver que función cumple este antes de usarlo).

Para acceder al valor de una varaible de sesión que has creado en ese script . .debes usar Las mismas funciones que usastes en este:

Código PHP:
<?
 
// le damos un mobre a la sesion. 
    
session_name($usuarios_sesion); 
     
// incia sessiones 
    
session_start(); 

    
// Paranoia: decimos al navegador que no "cachee" esta página. 
    
session_cache_limiter('nocache,private'); 

print 
$_SESSION['user']; 
echo 
"</P>"
print 
$_SESSION['pass']; 
echo 
"</P>"
print 
$_SESSION['id']; 

var_dump($_SESSION['Usuario']); 
echo 
"</P>"
var_dump($_SESSION['Clave']); 
echo 
"</P>"
print 
"hola"
?>
No sé donde defines: $usuarios_sesion (su valor) pero es IMPORTANTE que sea el mismo que en todos los scritps que usen sesiones le dás valor. O simplemente NO LO USES .. es un dato completamente opcional el hecho de dar un nombre a una sesión (puedes dejar que PHP le dé el que usa por defecto).

Luego habrá que ver como propagas el SID en tu aplicación, según haces tu redireccionamiento vía header() de tipo "location" estás obligando a que el SID se deba propagar en cookies (= navegador que acepte cookies, ningún elemento como antivirus o firewall's que las bloquen y configuración de PHP (php.ini) session.use_cookies = ON)


Un saludo,
  #5 (permalink)  
Antiguo 14/12/2005, 15:01
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 4 meses
Puntos: 1
Cluster!!
Si, como había dicho al empezar este topic, tome como base el autentificator y agregue algunas cosas para utilizar una base de datos que tengo por aca.
Pero bueno, la idea no es usar cookies, sino con la base unicamente.
Bueno, solucione el problema, no se aun como, se que borre todos los archivos y comence otra vez. Algo en el camino debo haber cambiado porque ya funciona. Tambien hice unos cambios en los campos de la base de datos.

Bueno, muchisimas gracias por las ayudas, me sirvieron mucho.

La autentificacion es similar al Autentificator, solo que agrego mas valores a la sesion para luego llamarlas cuando las necesito.

Atte.
Ariel.-
__________________
Diseñador y Desarrolador en Proyecto81 WebStudio
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 20:06.