Question:
Date: 21-02-2019 13:25:00
(In Spanish)
[b
conexion.php:
][/b]
Hola amigos quisiera saber saber como evitar que el usuario ingrese por la barra de direcciones burlando el login[Unresolved]
<ul class="nav navbar-nav flex-row justify-content-between ml-auto border border-light "> <li class="dropdown order-1"> <button type="button" id="dropdownMenu1" data-toggle="dropdown" class="btn btn-danger dropdown-toggle">Entrar <span class="caret"></span></button> <ul class="dropdown-menu dropdown-menu-right mt-2"> <li class="px-3 py-2"> <form action ="controlador/login.php" method="POST" class="form" role="form"> <div class="form-group"> <input type="text" name="usuario" class="form-control" id="exampleDropdownFormEmail2" placeholder="Usuario" title="se necesita un usuario"required> </div> <div class="form-group"> <input type="password" name="password" class="form-control" id="exampleDropdownFormPassword2" placeholder="Contraseña" title="se necesita contraseña"required> </div> <div class="form-group"> <button type="submit" class="btn btn-primary btn-block">Inicio de session</button> </div> <div class="form-group text-center"> <small><a href="#" data-toggle="modal" data-target="#modalPassword">Olvidaste contraseña?</a></small> </div> </form> </li> </ul> </li> </ul>
<?php include("../modelo/conexion.php"); $user= $_POST['usuario']; $pass= $_POST['password']; $con = new conexion; $con->login($user, $pass); $con->cerrar(); ?>
[b
conexion.php:
][/b]
<?php class conexion{ private $conexion; private $server="localhost"; private $usuario="root"; private $pass=""; private $bd="iglesia"; private $user; private $password; public function __construct(){ $this->conexion = new mysqli($this->server, $this->usuario,$this->pass, $this->bd); if ($this->conexion->connect_errno) { die ("fallo al conectar: (".$this->conexion->connect_errno.")"); } } public function cerrar(){ $this->conexion->close(); } public function login($usuario, $pass){ $this->user=$usuario; $this->password=$pass; $query="SELECT id, nombre, usuario, password FROM user WHERE usuario = '".$this->user."'and password='".$this->password."'"; $consulta = $this->conexion->query($query); if ($row = mysqli_fetch_array($consulta)) { session_start(); $_SESSION['user']=$user; header("Location:../vista/principal.php"); }else{ echo "incorrecto"; } } } ?>
<?php session_start(); require_once '../modelo/conexion.php'; ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="../css/bootstrap.min.css" > <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js" integrity="sha384-kW+oWsYx3YpxvjtZjFXqazFpA7UP/MbiY4jvs+RWZo2+N94PFZ36T6TFkc9O3qoB" crossorigin="anonymous"></script> <style> .slider{ background:url("../img/ibca2.png"); height: 94vh; background-size:100% 100%; background-position: center; } header{ }Votes: 0 - Answers: 2 - Views: 20 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 21-02-2019 13:38:37 usa tu variable global $_SESSION['user'] para ver si el usuario ya a ingresado correctamente a su perfil. Esto lo tendras que hacer en cada una de tus paginas. si no a ingresado correctamente, lo haces redirect a la pagina login.
Un ejemplo:
if(isset($_SESSION['user'])){ //datos para esta pagina. } else{ redirect('login.php'); }
Votes: 1 - Link answer -
Date: 25-02-2019 14:31:17 Una forma un poco más compacta del código de Edgar es esta: al inicio de tu página colocas este código:
session_start(); if(!isset($_SESSION['user'])) { header('Location:index.html'); die(); } // El código de tu página aqui
De esta manera si el usuario no esta logeado, automáticamente se le redirige a otra página (index.html en este caso) sin tener que meter el contenido de la página dentro del lazo if() Votes: 1 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In