Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2017, 08:43
etobcn
 
Fecha de Ingreso: enero-2011
Mensajes: 16
Antigüedad: 13 años, 2 meses
Puntos: 0
Variables de session

Muy buenas a todos.

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> 
Validar.php

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>";    

    } 
Admin.php (sólo pongo como recupero la variable, ya que el resto es html

Código PHP:
<?php
    session_start
();
    if (@!
$_SESSION['iduser']) {
        
header("Location:index.php");
    }
    
?>

Bueno espero me podais ayudar, xq seguramtente será una chorrada.