Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2009, 11:23
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 2 meses
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