Proteger web con usuario y contraseña

Para empezar decir que de php mis nociones son muy básicas, lo que necesito es restringir el acceso a todas las páginas de una web mediante usuario y contraseña, de modo que valide los mismos en el inicio y permita entrar al resto, pero que si desde un buscador intentas acceder a una de las páginas (no a la principal que ya pediría la validación) no permita dicho acceso si una validación previa.
Me han comentado que se puede hacer con un txt en el que se incluyen los usuarios y contraseñas. Pero no se como enlazar luego la web a dicho txt, por lo que, si disponéis de un zip para descargar con un ejemplo para que lo "destripe"

1 Respuesta

Respuesta
1
Aquí tienes un modulo de validación de usuario:
<?php
if(isset($_POST['username'])){
     $last = date("Y-m-d");
     $username = $_POST['username'];
     $query = "SELECT * FROM members WHERE gebruikersnaam = '$username';";
     $userinfo = mysql_query($query);
     $users = mysql_num_rows($userinfo);
     $userinfo = mysql_fetch_array($userinfo);
     if($users){
          $passwordDB = $userinfo['wachtwoord'];
          $passwordSent = $_POST['password'];
               if($passwordSent == $passwordDB){
                    $active = $userinfo['active'];
                    if($active){
                         $memberid = $userinfo['memberid'];
                         $admin = $userinfo['admin'];
                         $captain = $userinfo['captain'];
                         $username = $userinfo['gebruikersnaam'];
                         $login = 1;
                         mysql_query("UPDATE members SET last='$last' WHERE memberid = '$memberid'") or die(mysql_error());
                         $_SESSION['memberid']=$memberid;
                         $_SESSION['username']=$username;
                         $_SESSION['admin']=$admin;
                         $_SESSION['captain']=$captain;
                    }else{
                         $login = 0;                    
                         $error = 1;
                         $message = "Account Deactivated";
                    }
               }else{
                    $login = 0;
                    $error = 1;
                    $message = "Invalid password";
                    }
          }else{
               $login = 0;
               $error = 1;
               $message = "Invalid Username";
          }
     $_SESSION['login']=$login;
     }
?>
<div class="loginBox">
                    <?php if($login == 1 AND is_int($login)){ ?>
<div class="loged"><?php echo $_LANG['welcome']; ?> <b><?php echo $username;?></b></div>
<script type="text/javascript">
                $('notifications').load('notifications.php');
                </script>
<?php }else{
                if($error){ ?>
<div class="error"><?php echo $message;?></div>
<?php } ?>
                    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" id="search">
                         <input name="username" type="text" class="login inputbox" value="<?php echo $_LANG['Username'] ?>" onclick="if(this.value=='<?php echo $_LANG['Username'] ?>')this.value='';" onblur="if(this.value=='')this.value='<?php echo $_LANG['Username'] ?>';" />
                         <input name="password" type="password" class="password inputbox" value="<?php echo $_LANG['Password'] ?>" onclick="if(this.value=='<?php echo $_LANG['Password'] ?>')this.value='';" onblur="if(this.value=='')this.value='<?php echo $_LANG['Password'] ?>';" />
                         <input class="submit" value="<?php echo $_LANG['Login'] ?>" type="submit" />
                </form>
                <?php }?>
            </div>
Luego desde cualquier página checas el estado de $_SESSION['login'], y en base a eso muestra el login. Los nombres de los campos están en holandés, ya que fue un desarrollo que hice hace algún tiempo.
¿Es posible que me remita el php por email? [email protected]
Gracias
Juanma.
Ahí tienes todo el PHP, no suelo contactar por mail, a los usuarios de todoexpertos, a menos que estos quieran contratar mis servicios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas