PHP - variables de sesion

   
Vista:

variables de sesion

Publicado por andres colmenares (2 intervenciones) el 12/05/2010 16:26:06
hola..
uso variables de sesion, pro me sucede algo muy extraño, cuando inciia sesion muestra binvenido...: ""NOMBRE USUARIO"

pero algunas veces inicia sesion se me conecta bn a la BD pero las variables de sesion son vacias... me aparece en blanco el nombre del ususario...

pero como digo es aveces... no simepre sucede esto.. por eso no se que pasa... porq puede ser esto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:variables de sesion

Publicado por Carles (17 intervenciones) el 12/05/2010 19:17:11
Si no pones algo de código es difícil ayudarte.

El inicio de la sesión debe estar siempre en la primera linea del script "session_start()", y encada uno de los archivos PHP en los que uses la sesión.
Procura también usar un nombre de sesión, y que este sea igual en todos los archivos que usen la sesión "session_name('misesion');"

Procura también usar descriptores cortos, $_SESSION[''] en lugar de $HTTP_SESSION_VARS[''], ya que en algunos servers está desactivada esta última nomenclatura (antigua).

Un saludo,
Xatcom.net, Diseño web creativo y programación a medida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:variables de sesion

Publicado por andres (2 intervenciones) el 12/05/2010 19:54:05
hola.. bueno si tienes razon...
mi codigo es este:

tengo un index con un from y ahi pide al usuario el rol, NIT empresa "q para mi es usuario" ... el login "nombre de usuario" y un pasword... con el orm envio a login.php y
en este tengo esto : "login.php"

<?php

//iniciando sesion
session_start ();

include ("Conectar.php");

$link = Conectarse();

// Recuperacion y creacion de variables
$rol = $_POST['selector'];
$nombre = htmlspecialchars($_POST['textfield']);
$password = htmlspecialchars($_POST['textfield2']);
$usuario = htmlspecialchars($_POST['textfield3']);
$rol2= $rol;
$usuario2 = $usuario;
switch ($rol) {
case 1:
//Sentencia SQL para buscar un usuario con esos datos
$c_usuario = "SELECT * FROM Empleado WHERE login='$nombre' and pasword='$password' and Usuario_idUsuarios= '$usuario2' and TipoUsuario_idTipoUsuario = '$rol2'";
//Ejecuto la sentencia
$r_usuario = mysql_query("$c_usuario",$link) or die(mysql_error());
$r_ok = mysql_fetch_array($r_usuario);

if($r_ok['login'] != $nombre OR $r_ok['pasword'] != $password OR $r_ok['Usuario_idUsuarios'] != $usuario2 OR $r_ok['TipoUsuario_idTipoUsuario'] != $rol2 OR $r_ok['estado']=0){
$mensaje = "Nombre de usuario o contraseqa incorrecta";
header("Location: Index.php?mensaje=$mensaje");
}
else{
$usuario = mysql_query("SELECT nombre FROM Usuario WHERE idUsuarios='$usuario2'",$link);
$r_u = mysql_fetch_array($usuario);

$_SESSION["usuario"] = $r_ok['nombre'] . " " . $r_ok['apellido'];
$_SESSION["rol"] = $r_ok['TipoUsuario_idTipoUsuario'];
$_SESSION["Idusuario"] = $r_ok['Usuario_idUsuarios'];
$_SESSION["Idempleado"] = $r_ok['idEmpleado'];
$_SESSION["empresa"] = $r_u['nombre'];
header("Location: pantallasC.php");
}
break;

dependiendo del rol el switch me envia a un menu corresposnidente para cad uno.....

ahora... la parte q les digo: donde llamo mis variables de sesion: se llama encabezado.php

el codigo completo es:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- DW6 -->
<head>
<!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
<title>Encabezado</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="mm_health_nutr.css" type="text/css" />
<script language="JavaScript" type="text/javascript">
//--------------- LOCALIZEABLE GLOBALS ---------------
var d=new Date();
var monthname=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
//Ensure correct for language. English is "January 1, 2004"
var TODAY = monthname[d.getMonth()] + " " + d.getDate() + ", " + d.getFullYear();
//--------------- END LOCALIZEABLE ---------------
</script>

<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
</head>
<body bgcolor="#F4FFE4">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#ABB6F0">
<td colspan="3" rowspan="2"><img src="images/ultimo.gif" alt="Header image" width="170" height="101" border="0" /></td>
<td height="49" colspan="3" id="logo" valign="bottom" align="center" nowrap="nowrap"><img src="images/pabilo.gif" alt="Header image" width="300" height="40" border="0" /></td>
<td width="211"> </td>
</tr>
<tr bgcolor="#ABB6F0">
<td height="51" colspan="3" id="tagline" valign="top" align="center">HACEMOS LO CORRECTO CORRECTAMENTE </td>
<td width="211"> </td>
</tr>
<tr>
<td colspan="7" bgcolor="#3E4275"></td>
</tr>
<tr>
<td colspan="7" bgcolor="#3E4275"></td>
</tr>
<tr bgcolor="#3E4275">
<td colspan="3" id="dateformat" height="20"><b><FONT COLOR="white">
<div align="center"><script language="JavaScript" type="text/javascript">document.write(TODAY);</script> </td></div>
<td colspan="2" id="dateformat" height="20"><b><FONT COLOR="white">
<div align="center"> <?php echo ("bienvenido: ");
echo $_SESSION["usuario"];
?> </td> </FONT></b></div>
<td colspan="2" id="dateformat" height="20"><b><FONT COLOR="white">
<div align="center"> <?php echo ("Empresa: ");
echo $_SESSION["empresa"];
?> </td> </FONT></b></div>

</tr>
<tr>
<td colspan="7" bgcolor="#3E4275"></td>
</tr>
<tr>
<td colspan="7" bgcolor="#3E4275"></td>
</tr>
</table>
</table>

</body>
</html>

en este es un encabezado q pongo donde hay un titulo... un logo... la fecha y el nombre de mi usuario....

como decia antes esto me funcionaba perfecto.... pero desde hace unos dias.. avcees es como si las variables de sesion las mandara vacias.. en blanco.... y ai quedo porq uso las variables de sesion par hacer busqedas en la BD...
y como aparecen vacias... mis querys.. no funcionan....

tal vez sea una brutalidad lo q estoy pensando.. pero subi otra aplicacion php a mi servidor...
puede darse el caso q esten generando conflictos estas 2 alicaciones es lo unico q se me courre porq antes me funciona perfectooooo...

ademas... lo subi a otros ervidor.. y funciona de maravilla eso es lo q no entiendo... porq antes en el mismo servidor funcioana bn y ahora es a ratos

y aclaro q la otra aplicaion tiene el msimo probelma en otor servidor perfecto...
y en este actula q uso... pfff lasvariables de sesion.. son vascias

lo q no entiendo de ninguna forma porq antes si y ahora ya no funciona....
les agradeceria cualqueir ayuda.. porq me estoy volviendo loco con esto

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:variables de sesion

Publicado por Gilberto (7 intervenciones) el 06/10/2010 01:29:18
No se como este tu pagina anterior, pero te has fijado que el metodo en tu formulario donde capturas el nombre de usuario este como POST y no como GET??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar