PHP - ayuda con formulario inicio sesion.....

 
Vista:
Imágen de perfil de vicente
Val: 152
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ayuda con formulario inicio sesion.....

Publicado por vicente (78 intervenciones) el 21/10/2016 19:46:38
Buenas tardes , bueno tengo un header creado en php..... alque le acabo de añadir un pequeño formulario de login php, dropdown. el problema es que como mis nociones de php aun son muy flojas no me sale lo que quiero hacer, nose , como hacerlo ........

alguien me puede echar una mano????
vamos a ver en principio mi formulario conecta y desconecta a los usuarios.... luego funciona..... lo que me gustaria hacer es mas bien estetico.......y es lo siguiente..... subo imagen.....

SNAG-16102118023400

esta es la imagen del formulario, pues bien lo que quiero haceres que cuando alguien se loguee desaparezca la palabra Login y apareca en su sutio Desconectar o Logout y justa al lado la imagen de avartar del usuario cuya url tengo en la base de datos y su usuario........
he conseguido que salga su usuario , pero no su imagen de avatar y tampoco he conseguido que desaparezca la palabra login y aparezca la palabra Desconectar algo como esta imagen... y que cuando un usuario se desconecte o se desloguee vuelva a estar como al principio o sea que desaparezca la imagen , el nombre de usuario y se vaya Desconectar y vuelva ha aparecer Login

SNAG-16102118223600

habia pensado hacer con un switch evaluando la variable conexion si estas conectado escribe esto y si no lo estas esto otro, o bien con una condicional , pero no se muy bien donde meterlo....

subo codigo del formulario, por si alguien puede ayudarme con esto......
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
//aqui empieza el formulario
	 echo'<div class="dropdown">';
        	echo'<a class="btn btn-primary dropdown-toggle" id="login" type="button" data-toggle="dropdown">Login<span></span></a>';
			include_once('includes/conexion_blog.inc.php');
				session_start();
				if($_SERVER['REQUEST_METHOD'] == "POST"){
					$usuario = mysqli_real_escape_string($ConDb,$_POST['username']);
					$contrasena = mysqli_real_escape_string($ConDb,$_POST['password']);
					$sql = "SELECT id_usuario FROM registro WHERE usuario ='$usuario' and password = '$contrasena'";
					$resultado = mysqli_query($ConDB,$sql);
					$row = mysqli_fetch_array($resultado,MYSQLI_ASSOC);
					$active = $row['active'];
					$count = mysqli_num_rows($resultado);
					if($count == 1){
						session_register("usuario");
						$_SESSION['login_user'] == $usuario;
						header("location:comentarios.php");
						}else{
							$error = "El Usuario o Password no son correctos";
						}
    			echo'<form class="dropdown-menu" role="menu" aria-labelledby="menu1">';
					echo'<fielset class="login">';
						echo'<legend class="login text-center">Inicio de sesion</legend>';
							echo'<label class="user login text-warning">Usuario: </label>';
								echo'<input class="text-muted user_text" type="text" name="username" id="username"><br />';
								echo'<br />';
							echo'<label class="passwd login text-warning">Password: </label>';
								echo'<input class="text-muted passwd_text" type="text" name="password" id="password"><br />';
								echo'<br />';
								echo'<input class="checkLogin" type="checkbox" name="recordar" id="recordar">';
								echo'<label class="remember text-warning" for="recordar">Recordar</label>';
								echo'<input class="flogin" type="submit" name="submit" id="submit" value="Inicio">';
					echo'</fieldset>';
    			echo'</form>';
							}else{
					echo'<div class="inf_usuario"><img src="img/icons/avatar/admin.png" width="50px" height="auto"' . $avatar . '"><br />' . $usuario . '</div>';
					echo'<a class="desconectar" href="logout.php">Desconectar</a>';
				}
// aqui termina el formulario......
	echo'</div>';
echo'</div><!--/.nav-container -->';
?>
subo tambien archivo logout...
1
2
3
4
5
6
7
8
9
10
<?php
	//Inicio sesion
	 session_start();
	//Elimino todas las sesiones, en teoria, pq tampoc consigo de que me devuelva el header a su estado anterior
	 session_unset();
	//Destruyo la session
	 session_destroy();
	//redirijo a la pagina proncipal del blog
	 header('location: blog.php');
?>

Gracias y saludos
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 Jorge

ayuda con formulario inicio sesion.....

Publicado por Jorge (69 intervenciones) el 21/10/2016 20:39:25
Con esto puedes saber si un usuario ha iniciado sesión o no.

1
2
3
if (isset($_SESSION['login_user'])){
echo "Hola" . $_SESSION['login_user']."!";
} Else { echo "No has iniciado sesión"; }
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
Imágen de perfil de Jorge

ayuda con formulario inicio sesion.....

Publicado por Jorge (69 intervenciones) el 21/10/2016 20:43:41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (isset($_SESSION['login_user'])) {
	echo'<form class="dropdown-menu" role="menu" aria-labelledby="menu1">';
		echo'<fielset class="login">';
			echo'<legend class="login text-center">Inicio de sesion</legend>';
				echo'<label class="user login text-warning">Usuario: </label>';
					echo'<input class="text-muted user_text" type="text" name="username" id="username"><br />';
					echo'<br />';
				echo'<label class="passwd login text-warning">Password: </label>';
					echo'<input class="text-muted passwd_text" type="text" name="password" id="password"><br />';
					echo'<br />';
					echo'<input class="checkLogin" type="checkbox" name="recordar" id="recordar">';
					echo'<label class="remember text-warning" for="recordar">Recordar</label>';
					echo'<input class="flogin" type="submit" name="submit" id="submit" value="Inicio">';
		echo'</fieldset>';
	echo'</form>';
} else {
	echo'<div class="inf_usuario"><img src="img/icons/avatar/admin.png" width="50px" height="auto"' . $avatar . '"><br />' . $usuario . '</div>';
	echo'<a class="desconectar" href="logout.php">Desconectar</a>';
}
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
Imágen de perfil de vicente
Val: 152
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ayuda con formulario inicio sesion.....

Publicado por vicente (78 intervenciones) el 22/10/2016 18:11:57
gracias Jorge , probe ayer tu sugerencia y no me funciono.....
ademas para hacer lo que quiero hacer necesito poder sacar u obtener la imagen desde la base de datos , cosa que de momento aun no he podido conseguir..... con este sistema, supongo que tendre que hacer otra consulta para obtener la imagen desde la base de datos....

mi idea creo que es simple, pues muchas webs lo tienen y es que cuando una persona inicie sesion desaparezca la palabra login y aparezca la palabra Desconectar o Logout junto con una imagen del avatar del usuario y su nick.....
y que cuando un usuario se Desconecte desaparezca la imagen del avatar, su nick y vuelva a verse la palabra Login en vez de la de Desconectar.......

No se si dicho codigo podre en contrarlo por internet, para poder ver como esta hecho, pero de momento las busquedas que he realizado no han surgido efecto........

Gracias y saludos
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
Imágen de perfil de jorge

ayuda con formulario inicio sesion.....

Publicado por jorge (69 intervenciones) el 22/10/2016 19:15:57
Insisto que con lo que te propuse puedes lograr lo que quieres...

Según tu código, cuando inicias sesión se crea una variable de sesión, en este caso la variable es $_SESSION['login_user']

Con el código que te sugiero a continuación compruebas si esta variable esta creada o no. Tienes que adaptarlo a lo que quieres solo te puse un ejemplo por que tampoco das toda la información necesaria como para hacerte el código...

1
2
3
if (isset($_SESSION['login_user'])){
echo "Hola" . $_SESSION['login_user']."!"; //////// Aquí colocas el nombre de usuario, el logout, el avatar etc...
} Else { echo "No has iniciado sesión"; } /////// Aquí colocas el login

Para obtener el avatar, la ruta de la imagen debe estar en la base de datos... Puedes obtenerla con una consulta a la base de datos

1
SELECT avatar FROM registro WHERE usuario ='$usuario'

Si no lo logras puedo hacerte las modificaciones pero no ayuda mucho el código que muestras, envía captura de pantalla de la estructura de la tabla "registro" en tu base de datos para que veamos como se llama el campo que almacena lo de los avatares
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
Imágen de perfil de jorge

ayuda con formulario inicio sesion.....

Publicado por jorge (69 intervenciones) el 22/10/2016 19:31:54
Prueba esto:

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
session_start();
//aqui empieza el formulario
if (isset($_SESSION['login_user'])){
echo "Hola" . $_SESSION['login_user']."!";
} Else {
	 echo'<div class="dropdown">';
	echo'<a class="btn btn-primary dropdown-toggle" id="login" type="button" data-toggle="dropdown">Login<span></span></a>';
	include_once('includes/conexion_blog.inc.php');
			if($_SERVER['REQUEST_METHOD'] == "POST"){
			$usuario = mysqli_real_escape_string($ConDb,$_POST['username']);
			$contrasena = mysqli_real_escape_string($ConDb,$_POST['password']);
			$sql = "SELECT id_usuario FROM registro WHERE usuario ='$usuario' and password = '$contrasena'";
			$resultado = mysqli_query($ConDB,$sql);
			$row = mysqli_fetch_array($resultado,MYSQLI_ASSOC);
			$active = $row['active'];
			$count = mysqli_num_rows($resultado);
			if($count == 1){
				session_register("usuario");
				$_SESSION['login_user'] == $usuario;
				header("location:comentarios.php");
			}else{
				$error = "El Usuario o Password no son correctos";
			}
		echo'<form class="dropdown-menu" role="menu" aria-labelledby="menu1">';
			echo'<fielset class="login">';
				echo'<legend class="login text-center">Inicio de sesion</legend>';
					echo'<label class="user login text-warning">Usuario: </label>';
						echo'<input class="text-muted user_text" type="text" name="username" id="username"><br />';
						echo'<br />';
					echo'<label class="passwd login text-warning">Password: </label>';
						echo'<input class="text-muted passwd_text" type="text" name="password" id="password"><br />';
						echo'<br />';
						echo'<input class="checkLogin" type="checkbox" name="recordar" id="recordar">';
						echo'<label class="remember text-warning" for="recordar">Recordar</label>';
						echo'<input class="flogin" type="submit" name="submit" id="submit" value="Inicio">';
			echo'</fieldset>';
		echo'</form>'; }
		}else{
			echo'<div class="inf_usuario"><img src="img/icons/avatar/admin.png" width="50px" height="auto"' . $avatar . '"><br />' . $usuario . '</div>';
			echo'<a class="desconectar" href="logout.php">Desconectar</a>';
		}
// aqui termina el formulario......
	echo'</div>';
echo'</div><!--/.nav-container -->
?>
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
Imágen de perfil de vicente
Val: 152
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ayuda con formulario inicio sesion.....

Publicado por vicente (78 intervenciones) el 23/10/2016 11:34:34
aver te subo las fotos de la tabla registro..........


SNAG-16102309013900
SNAG-16102309021000

aver te he subido dos imagenes una de la estructura de la tabla registro y otra de 2 registros de prueba que tengo creado dentro del de la tabla registro......

creo que el problema es que no se como optimizar el codigo para que se me quede todo dentro del header o del archivo header.inc.php......

el formulario de login este esta basado en un que encontre por la web , concretamente en esta pagina......

https://www.tutorialspoint.com/php/php_mysql_login.htm

solo que aqui el codigo esta basado en una sucesion de varias paginas ya que redireciona de una pagina a otra y yo lo que quiero hacer es adaptarlo , para que se quede todo en un header php que yo mismo cree que ahora estoy tratando de modificar , con lo cual muchas de las paginas de ese ejemplo no me deben de servir , a si que creo que el error esta en que no se optimzar el codigo.....

Te adjunto dos includes de los headers uno tal cual era antes de incluirle el formulario de inicio de sesion(header.inc.php)
y otro con el formulario ya insertado(header_flogin.inc.php)

para que puedas ver a que me refiero......

espero que puedas ayudarme a solucionar este problema

Mil gracias y saludos
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