Estoy haciendo el backend de una web y me ha pasado una cosa muy rara.
En el apartado del login, que lo tengo deiferenciado de si es admin o usuario, un a vez te registras accedes o a una pagina o a otra.
Y paso medianto una variable de session el id para varias cosas. Sinó que vuelva a la página de login.
Bien, pues el problema , es que todo funcionaba bien hasta que he actualizado la version de MAMP a la última, que me pedía actualizar las tablas ya que la útlima versión trabaj con php 7, o me imagino que es por eso, xq la anterior versión trabajaba en php 5.
Os adjunto código xq me estoy volviendo loco, y además como no soy ningún experto en php (estoy haciendo esta web para aprender) espero que vosotros que soi maestros, si sólo con ver el código, sabeis que demonios pasa.
Index.php
Código HTML:
<form name="form-login" id="form-login" action="validar.php" method="POST"> <div class="reg-block-header"> <h2>Lógin</h2> <p>No tienes una cuenta, haz clik <a class="color-green" href="../registro.php">aquí</a> para regístrate.</p> </div> <div class="input-group margin-bottom-20"> <span class="input-group-addon"><i class="fa fa-envelope"></i></span> <input type="text" class="form-control" placeholder="Email" name="username" id="username"> </div> <div class="input-group margin-bottom-20"> <span class="input-group-addon"><i class="fa fa-lock"></i></span> <input type="text" class="form-control" placeholder="Contraseña" name="password" id="password"> </div> <hr> <div class="checkbox"> <label> <input type="checkbox"> <p>Recordar</p> </label> </div> <div class="row"> <div class="col-md-10 col-md-offset-1"> <button type="submit" class="btn-u btn-block">Entrar</button> </div> </div> <hr> <h4>Has olvidado tu contraseña?</h4> <p><a class="color-green" href="#">Pincha aquí</a> para recuperarla.</p> </form>
Código PHP:
session_start();
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.php'</script>";
}
}else{
echo '<script>alert("ESTE USUARIO NO EXISTE, PORFAVOR REGISTRESE PARA PODER INGRESAR")</script> ';
echo "<script>location.href='index.php'</script>";
}
Código PHP:
<?php
session_start();
if (@!$_SESSION['iduser']) {
header("Location:index.php");
}
?>
Bueno espero me podais ayudar, xq seguramtente será una chorrada.