Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como evitar accesos por URL sin haber iniciado sesión

Estas en el tema de Como evitar accesos por URL sin haber iniciado sesión en el foro de PHP en Foros del Web. Hola amigos. Buen día. Tengo un problema con relación al acceso de usuarios. Cuando un usuario desea entrar al sistema mediante un formulario de inicio, ...
  #1 (permalink)  
Antiguo 28/07/2014, 09:35
Avatar de BanScorpio  
Fecha de Ingreso: septiembre-2010
Ubicación: Guadalajara, Jalisco, Mexico
Mensajes: 65
Antigüedad: 13 años, 6 meses
Puntos: 1
Como evitar accesos por URL sin haber iniciado sesión

Hola amigos. Buen día.
Tengo un problema con relación al acceso de usuarios.

Cuando un usuario desea entrar al sistema mediante un formulario de inicio, este no accede a menos que ingrese correctamente su usuario y contraseña mostrando automáticamente un mensaje "Autenticación Errónea".

Ahora bien, el problema recae en que si a este usuario se le ocurre entrar por vía URL al sistema, este le concederá acceso sin problema.

Entonces lo que deseo hacer es evitar que esto suceda, hacer que no se ingrese al sistema vía URL sin hacer inicio de sesión antes.

Agradecería mucho su ayuda en esto.
__________________
Kañangas Ñangas... I Got So Much Funky Shit Inside My Brain
  #2 (permalink)  
Antiguo 28/07/2014, 09:42
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Como evitar accesos por URL sin haber iniciado sesión

El acceso (formulario) lo haces vía _GET?
  #3 (permalink)  
Antiguo 28/07/2014, 10:01
Avatar de BanScorpio  
Fecha de Ingreso: septiembre-2010
Ubicación: Guadalajara, Jalisco, Mexico
Mensajes: 65
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Como evitar accesos por URL sin haber iniciado sesión

No...

Este es el código que uso:

Formulario:

Código HTML:
<form action="verificar.php" method="post">
		<h1>Bienvenido a San Felipe Escolar</h1>
		<input type="text" maxlength="20" id="id" name="id" placeholder="Ingrese su ID" required autofocus/>
		<input type="password" maxlength="20" id="password" name="password" placeholder="Ingrese su contraseña" required/>
		<button type="submit">Iniciar Sesión</button>
</form> 
verificar.php

Código PHP:
<?php

mysql_connect
('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());


mysql_select_db('sanfelipe')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
 

$id $_POST["id"];   
$password $_POST["password"];


$result mysql_query("SELECT * FROM usuarios WHERE id = '$id'");
if(
$row mysql_fetch_array($result))
{     

 if(
$row["pass"] == $password)
 {
 
  
session_start();  
  
  
$_SESSION['id'] = $id
  
$_SESSION['nombre'] = $nombre
 
  
header("Location: menu.php");  
 }
 else
 {
  
  
?>
   <script languaje="javascript">
    alert("Contraseña Incorrecta");
    location.href = "index.php";
   </script>
  

<?php
            
 
}
}
else
{

?>

 <script languaje="javascript">
  alert("El nombre de usuario es incorrecto!");
  location.href = "index.php";
 </script>
<?php   
        

}

mysql_free_result($result);

mysql_close();

?>

El inicio de cualquier otro archivo al que no se debe tener acceso.

Código PHP:
<?php

    
//creamos la sesion
    
session_start();
    
//validamos si se ha hecho o no el inicio de sesion correctamente
    //si no se ha hecho la sesion nos regresará a login.php
    
if(!isset($_SESSION['id'])) 
    {
        
        
header('Location: index.php'); 
        
        exit();
    }

?>
Código HTML:
<!DOCTYPE html5>
<html>....
__________________
Kañangas Ñangas... I Got So Much Funky Shit Inside My Brain
  #4 (permalink)  
Antiguo 08/09/2015, 13:58
Avatar de joseanguiano  
Fecha de Ingreso: agosto-2015
Ubicación: Coatzacoalcos
Mensajes: 87
Antigüedad: 8 años, 7 meses
Puntos: 1
Pregunta Respuesta: Como evitar accesos por URL sin haber iniciado sesión

Cita:
Iniciado por BanScorpio Ver Mensaje
No...

Este es el código que uso:

Formulario:

Código HTML:
<form action="verificar.php" method="post">
		<h1>Bienvenido a San Felipe Escolar</h1>
		<input type="text" maxlength="20" id="id" name="id" placeholder="Ingrese su ID" required autofocus/>
		<input type="password" maxlength="20" id="password" name="password" placeholder="Ingrese su contraseña" required/>
		<button type="submit">Iniciar Sesión</button>
</form> 
verificar.php

Código PHP:
<?php

mysql_connect
('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());


mysql_select_db('sanfelipe')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
 

$id $_POST["id"];   
$password $_POST["password"];


$result mysql_query("SELECT * FROM usuarios WHERE id = '$id'");
if(
$row mysql_fetch_array($result))
{     

 if(
$row["pass"] == $password)
 {
 
  
session_start();  
  
  
$_SESSION['id'] = $id
  
$_SESSION['nombre'] = $nombre
 
  
header("Location: menu.php");  
 }
 else
 {
  
  
?>
   <script languaje="javascript">
    alert("Contraseña Incorrecta");
    location.href = "index.php";
   </script>
  

<?php
            
 
}
}
else
{

?>

 <script languaje="javascript">
  alert("El nombre de usuario es incorrecto!");
  location.href = "index.php";
 </script>
<?php   
        

}

mysql_free_result($result);

mysql_close();

?>

El inicio de cualquier otro archivo al que no se debe tener acceso.

Código PHP:
<?php

    
//creamos la sesion
    
session_start();
    
//validamos si se ha hecho o no el inicio de sesion correctamente
    //si no se ha hecho la sesion nos regresará a login.php
    
if(!isset($_SESSION['id'])) 
    {
        
        
header('Location: index.php'); 
        
        exit();
    }

?>
Código HTML:
<!DOCTYPE html5>
<html>....
Hola amigo lograste solucionar tu problema yo tambien en estos momentos cuento con el mismo error? tu lo solucionaste ?
__________________
Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre.
  #5 (permalink)  
Antiguo 08/09/2015, 16:23
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: Como evitar accesos por URL sin haber iniciado sesión

Código:
<?php

/* start the session */
session_start();

?>
debería estar al inicio de tu código

de este :

Código:
<?php 

mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());

puedes hacer algo así :

Código:
<?php
session_start();

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true)
{

}


else
{
echo "<br/>" . "ect ect solo usuarios registrados." . "<br/>";
echo "<br/>" . "<a href='login.html'>login!</a>";

exit;
}
  #6 (permalink)  
Antiguo 09/09/2015, 05:06
Avatar de Morod0  
Fecha de Ingreso: julio-2015
Ubicación: Valencia
Mensajes: 63
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Como evitar accesos por URL sin haber iniciado sesión

Cita:
Iniciado por sonystar_17 Ver Mensaje
Código:
<?php

/* start the session */
session_start();

?>
debería estar al inicio de tu código

de este :

Código:
<?php 

mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());

puedes hacer algo así :

Código:
<?php
session_start();

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true)
{

}


else
{
echo "<br/>" . "ect ect solo usuarios registrados." . "<br/>";
echo "<br/>" . "<a href='login.html'>login!</a>";

exit;
}
Exacto, comprueba en la url que quieres "esconder" si la SESSION existe correctamente, y sino {....}.

Yo tengo algo así en mi web y lo que hago es que si intentan entrar en la url sin conectarse en SESSION, con un location los mando a la pagina de loggeo

Etiquetas: inicio, mysql, sesiones, url
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 19:43.