Tutorial autentificación y creación de sesiones de usuario

  • Autor Autor newmesis
  • Fecha de inicio Fecha de inicio
N

newmesis

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
ola amigos , les cuento

encontre este tutorial de autentificacion

pero lo entiendo a la mitad, el tutorial me funciona bien
pero mi duda es la siguiente
antes pongo el codigo.

PHP:
<?php 
 
    session_start();
    include_once "conexion.php";
 
    import_request_variables("GP", "");
    function verificar_login($user,$password,&$result)
    {
        $sql = "SELECT * FROM usuarios WHERE email = '$user' and clave = '$password'";
        $rec = mysql_query($sql);
        $count = 0;
        while($row = mysql_fetch_object($rec))
        {
            $count++;
            $result = $row;
        }
        if($count == 1)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
    if(!isset($_SESSION['userid']))
    {
        if(isset($_POST['login']))
        {
            if(verificar_login($_POST['user'],$_POST['password'],$result) == 1)
            {
                $_SESSION['userid'] = $result->rut;
                $_SESSION['username'] = $result->email;
                $_SESSION['name'] = $result->nombre;
                $_SESSION['type'] = $result->type;
                    header("location:index.php");
            }
            else
            {
                echo '<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
            }
        }
 
        ?>
		<style type="text/css">
		*{
			font-size: 14px;
			font-family: sans-serif;
		}
		form.login {
		    background: none repeat scroll 0 0 [B]Enlace eliminado[/B]
		    border: 1px solid [B]Enlace eliminado[/B]
		    margin: 0 auto;
		    padding: 20px;
		    width: 278px;
		}
		form.login div {
		    margin-bottom: 15px;
		    overflow: hidden;
		}
		form.login div label {
		    display: block;
		    float: left;
		    line-height: 25px;
		}
		form.login div input[type="text"], form.login div input[type="password"] {
		    border: 1px solid [B]Enlace eliminado[/B]
		    float: right;
		    padding: 4px;
		}
		form.login div input[type="submit"] {
		    background: none repeat scroll 0 0 [B]Enlace eliminado[/B]
		    border: 1px solid [B]Enlace eliminado[/B]
		    float: right;
		    font-weight: bold;
		    padding: 4px 20px;
		}
		.error{
			color: red;
		    font-weight: bold;
		    margin: 10px;
		    text-align: center;
		}
		</style>
           <form action="" method="post" class="login">
		    <div><label>Username: </label><input name="user" type="text" value=""></div>
		    <div><label>Password: </label><input name="password" type="password" value=""></div>
		    <div><input name="login" type="submit" value="login"></div>
			</form>
        <?php
    }
    else
    {
        echo 'Su usuario ingreso correctamente.';
        echo '<a href="logout.php">Logout</a>';
    }
?>



ok lo que entendi de este codigo que genera la validacion del usuario en la misma pagina
ahora como agrego mas paginas con uso restringido
se que se crea la session para el usuario en el navegador pero como agrego esa session en todas las pagina para que el usuario verificado pueda verlas
 
buf, no me acaba de gustar ese código, preferiría que usaras algo como lo que propone [MENTION=3679]wsoul[/MENTION] en su blog: Login de usuario en PHP | wsoulrc.com, pero en fin, si quieres seguir usando este, pues lo que tienes que hacer en las otras páginas es comprobar antes que nada si el usuarios esta "logeado" y si no, mandarlo al login:

PHP:
session_start();
if(!isset($_SESSION['userid']))
{
 header('Location: http://tuweb.com/login.php');
}

Saludos.
 
gracias por responder. me sirvio mucho

ahora seria mucho si me ayudaras a entender este extracto de codigo

PHP:
if(!isset($_SESSION['userid']))
    {
        if(isset($_POST['login']))
        {
            if(verificar_login($_POST['user'],$_POST['password'],$result) == 1)
            {
                $_SESSION['userid'] = $result->rut;
                $_SESSION['username'] = $result->email;
                $_SESSION['name'] = $result->nombre;
                $_SESSION['type'] = $result->type;
				
                    header("location:login.php");
            }
 
newmesis, si la función import_request_variables o conexion.php no tienen nada para sanitizar $_POST, irónicamente estás abriendo un agujero de seguridad al ponerle contraseña a tus páginas de esta manera. ¿Dónde has encontrado este código?
 
Atrás
Arriba