Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2013, 09:58
Avatar de seRgiOOOOOO
seRgiOOOOOO
 
Fecha de Ingreso: noviembre-2011
Mensajes: 35
Antigüedad: 12 años, 4 meses
Puntos: 1
Porque no funcionan las sesiones PHP?

Cuando pruebo mi pagina con sesiones en localhost funcionan, pero cuando la subo a un servidor gratuito, en mi caso Hostinger, pues no funcionan.

Os dejo el codigo que tengo.

Login.php

Código:
<html>
	<head>
		<meta charset="utf-8">
		<title>A</title>
		<link rel="stylesheet" href="cool.css" type="text/css" media="all"> 
	</head>
	<body>
		<div class="container">
			<section id="content">
				<form action = "validar.php" method = "post">
					<h1>A</h1>
					<div>
						<input type="text" placeholder="Usuario" required="required" name = "usuario" id="username" />
					</div>
					<div>
						<input type="password" placeholder="Contrase&ntilde;a" required="required" name="password" id="password" />
					</div>
					<div>
						<input type="submit" name = "loguear" value="Loguear" />
					</div>
				</form>
			</section>
		</div>
	</body>
</html>

Validar.php

Código:
<?
session_start();
$usr = $_REQUEST['usuario'];
$pass = $_REQUEST['password'];

if (isset($_POST['loguear'])){
	$conn = mysql_connect("mysql.hostinger.es", "usuario", "unapass") or die ("No se puede conectar a la base de datos");
	mysql_select_db("elnombredelaBD", $conn) or die ("No se puede seleccionar la base de datos");
	
	$sql = "SELECT COUNT(*) from prueba WHERE usuario='$usr' AND password='$pass'"; 
	$consulta = mysql_query($sql); 
	$total = mysql_result($consulta, 0); 
	if ($total == 1){ 
		$_SESSION['user'] = $usuario;
		Header("location: index2.php");
	} else { 
		Header("location: index.php");
	} 
} else {
	Header("location: index.php");
}
?>
index2.php
Código:
<?
session_start();
if (isset($_SESSION['user'])){
	echo "logueado";
} else {
	echo "no logueado";
}
?>

Problema:


Si logueo con un usuario que NO esta en la base de datos, te redigire a la page del login para que vuelvas a intentarlo, esto lo hace bien.
Pero si me logueo con un usuario que esta en la base datos, lo encuentra, y redirige a index2.php, pero en vez de enseñar 'logueado', muestar 'no logueado', porque el usuario no tiene las sesiones, cuando en realidad si las tiene porque se las creo en validar.php por estar en la base datos.

Muchas gracias :)

PD: Si subo a hostinger un archivo con la funcion phpinfo();, devuelve esto sobre las sesiones.