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
