New question

Question:

 
  1  
 
Date: 21-11-2020 15:10:42 (In Spanish)

ayuda con tema php[Unresolved]

hola, que tal.Termine de programar mi proyecto en php, solo que la parte del login hice 2 por separado del admin y el usario,pero se ve mal que en el menu aparezca 2 login una para loguear el admin y el otro para el usuario, como programo un solo login para los 2 que valide el user y muestre su respectiva pestaña como lo hice por separado
aqui el codigo que hice por separado. soy un poco nuevo en esto,asi que gracias

login del admin.php

?php
if (isset($enviar)) {
$username = clear($username);
$password = clear($password);

$q=$mysqli->query("SELECT * FROM admins WHERE username='$username' AND password='$password'");

if (mysqli_num_rows($q)>0) {
$r =mysqli_fetch_array($q);
$_SESSION['id'] =$r['id'];
redir("?p=admin");
}else{
alert("Los datos no son validos");
redir("?p=admin");
}

}

if (isset($_SESSION['id'])) { //si hy sesion
?>
<a href="?p=agregar_producto">
<button class="btn btn-primary"><i class="fa fa-plus-circle"></i>Agregar Productos</button>
</a>
<?php

}else{
?>
<center>
<form method="post" action="">
<div class="centrar_login">
<label><h2><i class="fa fa-key"></i> Iniciar Sesion como administrador</h2></label>
<div class="form-group">
<input type="text" class="form-control" placeholder="Usuario" name="username" />
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="Contraseña" name="password" />
</div>
<div class="form-group">
<button class="btn btn-submit" name="enviar" type="submit"><i class="fa fa-sign-in"></i>Ingresar</button>
</div>
</div>
</form>
</center>
<?php

}
y el usario.php
<?php
if(isset($_SESSION['id_cliente'])){
redir("./");
}

if(isset($enviar)){
$username = clear($username);
$password = clear($password);

$q = $mysqli->query("SELECT * FROM clientes WHERE username = '$username' AND password = '$password'");

if(mysqli_num_rows($q)>0){
$r = mysqli_fetch_array($q);
$_SESSION['id_cliente'] = $r['id'];
if(isset($return)){
redir("?p=".$return);
}else{
redir("./");
}
}else{
alert("Los datos no son validos",0,'login');
//redir("?p=login");
}


}
?>


<center>
<form method="post" action="">
<div class="centrar_login">
<label><h2><i class="fa fa-key"></i> Iniciar Sesión</h2></label>
<div class="form-group">
<input type="text" autocomplete="off" class="form-control" placeholder="Usuario" name="username"/>
</div>

<div class="form-group">
<input type="password" class="form-control" placeholder="Contraseña" name="password"/>
</div>

<div class="form-group">
<button class="btn btn-submit" name="enviar" type="submit"><i class="fa fa-sign-in"></i> Ingresar</button>
</div>
</div>
</form>
</center>




Tags: Database - HTML - Javascript - JQuery - MySQL - PHP - Web Votes: 1 - Answers: 6 - Views: 11 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 24-11-2020 06:40:54 Hola Erny he estado leyendo tu problema y sinceramente me siento muy identificado con tu problemática ya que sufrí de la misma incógnita. Tengo una solución que tal vez satisface tus necesidades y espero que las cumpla.

    El concepto que yo aplique en mi código php fue simple, ya que aplique una nueva columna en mi base de datos (la mía es mysql) la columna es llamada rol y en ella ingreso 2 numeros(1-2).

    El algoritmo es simple:
    SI EL USUARIO EXISTE Y CONTRASEÑA ES CORRECTA Y SU ROL ES 1 SERA REDIRIGIDO AL SITIO DE ADMIN.

    SI EL USUARIO EXISTE Y SU CONTRASEÑA ES CORRECTA Y SU ROL ES 2 SERA REDIRIGIDO AL SITIO DE USER.

    SI NO PUEDES HACER QUE REDIRIJA AL LOGIN.
      Votes: 1 - Link answer
     
  • Date: 24-11-2020 06:41:39 ESTE ES EL CODIGO
    require("connect_db.php");
    $username=$_POST['mail'];
    $pass=$_POST['pass'];


    //la variable $mysqli viene de connect_db que lo traigo con el require("connect_db.php");
    $sql2=mysqli_query($mysqli,"SELECT * FROM login WHERE email='$username'");
    if($f2=mysqli_fetch_assoc($sql2)){
    if($pass==$f2['pasadmin']){
    $_SESSION['id']=$f2['id'];
    $_SESSION['user']=$f2['user'];
    $_SESSION['rol']=$f2['rol'];

    echo '<script>alert("BIENVENIDO ADMINISTRADOR")</script> ';
    echo "<script>location.href='admin.php'</script>";

    }
    }


    $sql=mysqli_query($mysqli,"SELECT * FROM login WHERE email='$username'");
    if($f=mysqli_fetch_assoc($sql)){
    if($pass==$f['password']){
    $_SESSION['id']=$f['id'];
    $_SESSION['user']=$f['user'];
    $_SESSION['rol']=$f['rol'];

    header("Location: index2.php");
    }

    else{
    echo '<script>alert("CONTRASEÑA INCORRECTA")</script> ';

    echo "<script>location.href='index.htm'</script>";
    }
    }
    else{

    echo '<script>alert("ESTE USUARIO NO EXISTE, PORFAVOR REGISTRESE PARA PODER INGRESAR")</script> ';

    echo "<script>location.href='index.htm'</script>";

    }
      Votes: 1 - Link answer
     
  • Date: 24-11-2020 06:43:47 ESPERO QUE TE AYUDE Y TE DESEO BUENA SUERTE!!!   Votes: 0 - Link answer
     
  •  
      0  
     
    Date: 24-11-2020 14:40:39 :) si me servicio gracias bro.....   Votes: 0 - Link answer
     
  • Date: 25-11-2020 04:29:46 Yo les sugeriría a ambos usar una tabla separada para tener los roles. Más que usar un dato numérico que puede ser difícil de recordar, si tienen una tabla roles con una clave foránea es más fácil de entender.

    Por otro lado, teniendo una tabla separada es más fácil si algún día quieren permitir a un usuario tener más de un rol.
      Votes: 3 - Link answer
     
  • Date: 06-12-2020 09:05:33 Un pequeño fallo en el código de Allan: las claves no están cifradas. Si usas claves cifradas solamente tienes que comparar la clave una vez y no dos, pues aunque en texto plano haya claves idénticas, al cifrarlas serán siempre diferentes.   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com