PHP - Evitar Ingresos directos a paginas atravez de la URL autentificando usuarios

 
Vista:
Imágen de perfil de MAS82
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Evitar Ingresos directos a paginas atravez de la URL autentificando usuarios

Publicado por MAS82 (71 intervenciones) el 20/04/2017 03:50:02
pido disculpas al administrador de la web por iniciar varios temas de los mismo; la verdad no se lo que paso ya que no me cargaba el contenido de los temas:

hola buen día o noche. estoy intentando ejecutar un código para validar usuarios y de esta forma evitar el ingreso de personas ajenas al sistema copiando la dirección de la pagina directamente en la URL. E logrado validar el usuario con su contraseña el inconveniente es que después de hacerlo no logro acceder a las otras paginas.

tengo las siguientes paginas: formlogin.html

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registro</title>
<body>
<form action="login.php" method="POST">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="603" border="1" align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
  <tr>
    <td height="25" bgcolor="#FFFFFF">&nbsp;</td>
    <td height="25" colspan="4" bgcolor="#FFFFFF">&nbsp;</td>
    <td bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="41" height="25" bgcolor="#FFFFFF"><p class="Estilo12">&nbsp;</p>      </td>
    <td height="25" colspan="4" bgcolor="#FFFFFF"><span class="Estilo14">Acceso al Sistema</span>
      <hr></td>
    <td width="34" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2"><span class="Estilo16">Usuario:</span></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2"><input name="usuario" type="text" size="60" /></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2"><span class="Estilo16">Contraseña: </span></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td height="26" colspan="2">&nbsp;</td>
    <td colspan="2"><input name="clave" type="password" size="60" /></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;
</td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2"><div align="center">
      <input name="enviar" type="submit" value="Ingresar" size="" />
    </div></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;
	</td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td width="121"><span class="Estilo10"><a href="http://www.google.com.pe" class="Estilo5">Salir</a>&nbsp;</span></td>
 
    <td width="234"><a href="registro.html" class="Estilo10">Registro</a></td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
</table>
</form>
<p align="center">&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="registro.html"></a></p>
</body>
</html>

luego: login.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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
require('conexion.php');
session_start();
?>
<?php
if(!isset($_SESSION['intentos']))
 {$_SESSION['intentos'] = 0 ;}
 
if ($_SESSION['intentos'] < 3 )
 {
$usuario = strip_tags($_POST['usuario']);
$clave = strip_tags(sha1($_POST['clave']));
 
$consulta= "SELECT id_usuarios,usuario,clave,cargo FROM usuarios WHERE usuario='".$usuario."' AND clave='".$clave."'";
$resultado= mysqli_query($conexion, $consulta) or die (mysqli_error($conexion));
$fila=mysqli_fetch_array($resultado);
    if (!$fila[0])
  	  {
		$_SESSION['intentos'] ++ ;
		echo '<script language = javascript> self.location = "loginform.php?estadologin=0" </script>';
	  }
    else
  	  {
		$_SESSION['logged'] = 'yes';
		$_SESSION['id_usuarios'] = $fila['id_usuarios'];
		$_SESSION['nombre'] = $fila['usuario'];
		$_SESSION['cargo'] = $fila['cargo'];
		mysqli_close($conexion);
		echo '<script>window.location="logeado.php"</script>';
	  }
 }
else
 { echo '<script language = javascript>
				alert("limite de intentos superado.")
				self.location = "http://www.google.com.pe"
				</script>';
  }
 
?>
 
 
     <style type="text/css">
<!--
body {
	background-image: url(imagenes/sao-pedro_MG_9829-copy.jpg);
}
-->
</style>

tanbien: logeado.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
session_start();
if ($_SESSION['logged'] == 'yes')
	  { echo 'Hola '.$_SESSION['nombre'].'.';
 
		 header('Location: usuarios.php');
 
 
	  }
	else
	  {  header('Location: loginform.php');
 
}
?>

y la pagina a la cual debería acceder no sin antes autentificar usuarios es decir: usuarios.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
27
28
29
30
31
32
33
34
35
36
37
<?php
include("logeado.php");
?>
 
<?php
	require('conexion.php');
	$sql=$conexion->query("SELECT us.usuario, us.dni, us.email, us.cargo
		   FROM usuarios us");
	?>
		  </p>
		  <p align="left">&nbsp;</p>
		  <p align="left">&nbsp;</p>
		  <p align="left">&nbsp;</p>
		  <p align="left">&nbsp;</p>
		  <p align="left">
		  <div id="div1">
		  <table width="855" align="center" class="bordered list tablausuarios" >
			<thead>
			  <tr>
				<th width="280" align="left" class="Estilo101">Usuario             </th>
				<th width="115" align="left" class="Estilo101">Dni              </th>
				<th width="144" align="left" class="Estilo101">Email              </th>
				<th width="119" align="left" class="Estilo101">Cargo              </th>
				<th width="118">&nbsp;</th>
			  </tr>
			</thead>
			<?php while ($row = $sql->fetch_assoc()){?>
			<tr>
			  <td><span class="Estilo92"><?php echo $row['usuario'];?></span></td>
			  <td><span class="Estilo92"><?php echo $row['dni'];?></span></td>
			  <td><span class="Estilo92"><?php echo $row['email'];?></span></td>
			  <td><span class="Estilo92"><?php echo $row['cargo'];?></span></td>
			  <td width="118" align="center" valign="middle"><div align="center"><a href="modificar_usuario.php?id_usuarios=<?php echo $row['id_usuarios'];?>"class="botonmodificar"></a>&nbsp;&nbsp; <a href="eliminar_usuario.php?id_usuarios=<?php echo $row['id_usuarios'];?>"class="botoneliminar"></a></div></td>
			</tr>
			<?php } ?>
		  </table>
	   </div>

el navegador me arroja el siguente error:

error
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 MAS82
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Evitar Ingresos directos a paginas atravez de la URL autentificando usuarios

Publicado por MAS82 (71 intervenciones) el 20/04/2017 14:43:00
un buen día a todos le cuento que ya logre correr el código, realmente no era tan difícil hacerlo , pero hay veces que te lías sin necesidad.
bueno la solución fue que:

requería tener otra pagina la cual nombre seguridad.php, con el siguiente código:

1
2
3
4
5
6
7
8
9
<?php
session_start();
if ($_SESSION['logged']!= 'yes')
	  {
		 echo 'Hola '.$_SESSION['nombre'].'.';
		 header("Location: loginform.php");
		 exit();
	  }
?>


el código de esta pagina se encarga de verificar si existe un usuario logeado y por tanto una sesión iniciada; si no hay sesión iniciada el código te re dirige a la pagina loginform.html de esta forma evitamos que personas ajenas ingresen a cualquier pagina copiando su dirección directamente en la URL, claro siempre y cuando la sesión haya sido cerrada por el usuario original.

tanbien cambie en la pagina usuarios.php , en lugar de llamara a logeado.php, llamamos a la pagina nueva seguridad.php

1
2
3
<?php
include("seguridad.php");
?>

el código funciona y espero alguien me corrija si hubiese algo incorrecto. Gracias por su atencion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Evitar Ingresos directos a paginas atravez de la URL autentificando usuarios

Publicado por xve (6935 intervenciones) el 20/04/2017 15:32:01
Gracias por comentarlo!!!
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