Foros del Web » Programando para Internet » PHP »

Porque no funcionan las sesiones PHP?

Estas en el tema de Porque no funcionan las sesiones PHP? en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/01/2013, 08:58
Avatar de seRgiOOOOOO  
Fecha de Ingreso: noviembre-2011
Mensajes: 35
Antigüedad: 7 años, 10 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.

  #2 (permalink)  
Antiguo 26/01/2013, 09:46
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 11 años, 9 meses
Puntos: 845
Respuesta: Porque no funcionan las sesiones PHP?

Donde definiste la variable $usuario ?, no sera $usr ?, pregunta, estas guardando los passwords como texto plano ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 26/01/2013, 15:50
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 8 años, 9 meses
Puntos: 7
Respuesta: Porque no funcionan las sesiones PHP?

Código PHP:
Ver original
  1. if (!isset($_SESSION)) {
  2. }
  #4 (permalink)  
Antiguo 26/01/2013, 16:36
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 926
Antigüedad: 12 años, 6 meses
Puntos: 269
Respuesta: Porque no funcionan las sesiones PHP?

Depura las sesiones:
- haz var_dump de $_SESSION
- haz echo de session_id, y asegurate de que coinciden.
- Un error que puede llegar a pasar, es que hayas dejado alguna referencia a 127.0.0.1 en algún fichero, y luego pruebas tu instalación de producción, desde tu ordenador de desarrollo.El navegador carga la página que tienes en local, en vez de la del servidor.

Etiquetas: funcionan, html, mysql, select, sesiones, sql
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 23:05.