Foros del Web » Programando para Internet » PHP »

Variables de sesion

Estas en el tema de Variables de sesion en el foro de PHP en Foros del Web. Hola, estoy realizando un sitio que tiene un panel de control, para ello estoy usando sesiones, en local todo me funciona correctamente, el problema viene ...
  #1 (permalink)  
Antiguo 09/09/2009, 11:23
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 1 mes
Puntos: 0
Variables de sesion

Hola, estoy realizando un sitio que tiene un panel de control, para ello estoy usando sesiones, en local todo me funciona correctamente, el problema viene cuando lo subo al servidor que tiene desabiliatado el register_globals. Leyendo por aki he visto que tendria que cambiar la variable de session a superglobales, pero no se como modificar mi codigo para hacerlo ya que fue un codigo que cogi por ahi, ya que las variables de sesion siempre se me atravesaron (como ahora).

login.php (aqui introduce el usuario y contraseña)
Cita:
<?
session_start();
if(isset($SESSION)){
header("location:user.php"); /* Si ha iniciado la sesion, vamos a user.php */
} else {
?>
<html><head><title>Necesita identificación! </title></head>
<body>
<center><h1>Identificate!</h1></center>
<form action="comprueba.php" method="POST">
Login: <input type="text" name="login"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" value="Entrar">
</form>
</body></html>
<?
} /* Y cerramos el else */
?>
comprueba.php (comprueba queel usuario sea correcto)
Cita:
<?php
session_start();
$server="host"; /* Nuestro server mysql */
$database="bbdd"; /* Nuestra base de datos */
$dbpass="pass"; /*Nuestro password mysql */
$dbuser="usuario"; /* Nuestro user mysql */
$query="SELECT * FROM usuarios WHERE login='$login'";
$enlace=mysql_connect($server,$dbuser,$dbpass);
mysql_select_db($database,$enlace) or die('No pudo seleccionarse la BD.' );
$result=mysql_query($query);
if(mysql_num_rows($result)==0){
echo "No existe el login introducido";
} else {
$array=mysql_fetch_array($result);
if($array["password"]==crypt($pass,"calatayud") ){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"];
$SESSION["apellidos"]=$array["apellidos"];
session_register("SESSION");
header("location:user.php");

} else {
echo "Password incorrecto!";
} /* Cerramos este ultimo else */
} /* Cerramos el else que corresponde a la comprobación de que el login existe */

?>
user.php (muestra la informacion del usuario autorizado)
Cita:
<?php
session_start();
if(!isset($SESSION)){
header("location:login.php");
} else {
echo "<html><body>";
echo "Bienvenido ";
echo $SESSION["nombre"]." ";
echo $SESSION["apellidos"];
echo "<br>Has entrado con el nombre de usuario ";
echo $SESSION["login"];
echo "<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
echo "</body></html>";
}
?>
logout.php (destruye la sesion)

Cita:
<?php
session_start();
if(!isset($_SESSION)){
header("location:login.php");
} else {
session_unset();
session_destroy();
echo "Sesion finalizada exitosamente";
?><script>alert('Sesion finalizada exitosamente');
location.href='../index.php';</script> <?php
}
?>
Por favor, que es lo que tengo que cambiar? porque por mas que he toqueteado no consigo hacerlo funcionar. Es muy fustrante que despues de haber trabajado tantas horas en algo por esto no pueda terminar.
Muchas gracias
  #2 (permalink)  
Antiguo 09/09/2009, 11:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Variables de sesion

Las sesiones son superglobales, no hay necesidad de convertilas porque ya lo son. El problema que tienes, es que no estas usando la variable $_POST. Lee este manual para que te puedas desenvolver http://www.forosdelweb.com/wiki/Manu...237;o_de_datos
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 09/09/2009, 16:56
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Variables de sesion

Nada, sigue sin funcionar, ya lo he modificado y me sigue saliendo el mismo error
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/29/d296244695/htdocs/doctype.html:7) in /homepages/29/d296244695/htdocs/zona_usuarios/alta_ejemplar.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /homepages/29/d296244695/htdocs/doctype.html:7) in /homepages/29/d296244695/htdocs/zona_usuarios/alta_ejemplar.php on line 7
  #4 (permalink)  
Antiguo 09/09/2009, 19:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Variables de sesion

Lo que esta pasando es que en el archivo: alta_ejemplar.php estas escribiendo alguna cosa antes que session_start(), cuando este debe ser si o si el primer renglon.

Pero en lo que posteaste no veo ningun archivo llamado: alta_ejemplar.php , asi que no se asegurarlo.
  #5 (permalink)  
Antiguo 10/09/2009, 16:35
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Variables de sesion

Muchas gracias Mayid, solucionado, aunque he cambiado todo el codigo
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 04:30.