PHP - No inicia sesion con $_SESSION["usuario"] Ayuda!!

   
Vista:

No inicia sesion con $_SESSION["usuario"] Ayuda!!

Publicado por MarvinMorales marv_mustaf@hotmail.com (13 intervenciones) el 24/10/2017 06:07:25
Buenas, quisera que me ayuden con alguna verificacion de mi codigo PHP, estoy creando un inicio de sesion, pero no me funciona como yo espero que lo haga, los codigos son los siguientes:

1) login.php
1
2
3
4
5
6
7
<form id="forma" action="validar.php" method="post">
	<div id="espacioLogo"><div>Iniciar sesión</div></div>
	<div class="portacajas"><div class="portaIcons"><img src="imagenes/user.png" class="iconsLogos"></div><input type="text" name="usuario" placeholder="Nombre de usuario..." id="user" required ></div>
	<div class="portacajas"><div class="portaIcons"><img src="imagenes/Password.png" class="iconsLogos"></div><input type="Password" name="contrasena" placeholder="Password..." id="user" required ></div>
	<link href='https://fonts.googleapis.com/css?family=Lato|Roboto:400,900' rel='stylesheet' type='text/css'>
	<div id="btnContainer"><input type="submit" name="ENVIAR" id="btn" value="LOGIN"></div>
</form>

2) validar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
	session_start();
	//Datos de usuario
	$userMain = $_POST["usuario"];
	$pass = $_POST["contrasena"];
 
	//Datos para Conexion a base de datos
	$host = "localhost";
	$user =	"kautivai_Marvin";
	$pw = "0927410654marvin";
	$dataBase1 = "kautivai_Login";
 
	$conexion = mysqli_connect($host, $user, $pw, $dataBase1);
	$resultado = mysqli_query($conexion, "SELECT * FROM Registrados WHERE User = '$userMain' and Password = '$pass'");
 
	if(mysqli_num_rows($resultado) > 0){
		header("Location:edicion.php");
 
	} else {
		echo "<meta charset='utf-8'><script>alert('El usuario o la contraseña estan incorrectos! Intente nuevamente...'); window.history.go(-1);</script>";
	}
 
	$_SESSION['usuario'] = $_POST["usuario"];
	mysqli_free_result($resultado);
	mysqli_close($conexion);
?>

3) edicion.php
1
2
3
4
5
6
7
8
9
10
<?php
	session_start();
	$variable_user = $_SESSION['usuario'];
	if($variable_user == null || $variable_user = ""){
		header("Location:login.php");
		die();
	}
        echo "<h1>Bienvenido ".$variable_user."</h1><br><a href='logout.php'>Cerrar Sesion</a>";
 
?>


4) logout.php
1
2
3
4
5
6
<?php
	session_start();
	session_unset();
	session_destroy();
	header("Location:login.php");
?>


Lo que sucede es que al escribir usuario y contrasena me envia al instante a la pagina login.php, los datos de usuario y contrase;a estan bien, porque sin el codigo de iniciar sesion, si me lleva a edicion.php.

Alguna idea de cual sera el problema?
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
Imágen de perfil de facundo

No inicia sesion con $_SESSION["usuario"] Ayuda!!

Publicado por facundo (185 intervenciones) el 24/10/2017 19:28:48
Hola, no probe el codigo, pero creo que el error es una boludes y esta aca:

1
2
3
4
if($variable_user == null || $variable_user = ""){
	header("Location:login.php");
	die();
}


Te debes preguntar poirque te redirije a login.php no? Mira bien el IF, si te fijas, la segunda condicion tiene un solo '=', por lo que le estas asignando un valor vacio a $variable_user, para decir 'es igual' debes poner asi ==
Entonces te quedaria asi:

1
2
3
4
if($variable_user == null || $variable_user == ""){
	header("Location:login.php");
	die();
}

Proba y comenta si te funciono
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

No inicia sesion con $_SESSION["usuario"] Ayuda!!

Publicado por MarvinMorales marv_mustaf@hotmail.com (13 intervenciones) el 25/10/2017 01:52:49
Muchisimas gracias por ayudarme con ese error, definitivamente ese fue el problema.. talvz sea por tanto codigo que he escrito, de verdad muchas 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

No inicia sesion con $_SESSION["usuario"] Ayuda!!

Publicado por Gonzalo (503 intervenciones) el 26/10/2017 03:09:49
tambien el problema pueden ser los espacios antes de session_start, qutale los espacios antes de session start y los espacios antes de <?

o sea, el archivo debe empezar exactamente asi:

-----------------------------------------
<?php
session_start();

sin los "---" claro.

checalo y nos avisas.

salu2

la pelota de golf fue un invento militar, crearon bombas esféricas para poder bombardear las presas hidroeléctricas alemanas, el diseño con "hundimientos simétricos" permite que la pelota llegue mas lejos y en linea recta cuando la arrojas horizontalmente, las pelotas perfectamente esféricas se desvían con el viento siguiendo una trayectoria errática.
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
Revisar política de publicidad