Foros del Web » Programando para Internet » PHP »

script para autentificar usuarios antes de entrar en ciertas paginas

Estas en el tema de script para autentificar usuarios antes de entrar en ciertas paginas en el foro de PHP en Foros del Web. Saludos mi problemas es el siguiente. Tengo un script para proteger paginas, asi los usuarios no pueden entrar sin antes poner un password, este script ...
  #1 (permalink)  
Antiguo 08/04/2011, 10:26
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Pregunta script para autentificar usuarios antes de entrar en ciertas paginas

Saludos

mi problemas es el siguiente. Tengo un script para proteger paginas, asi los usuarios
no pueden entrar sin antes poner un password, este script crea una cookie por un
tiempo predeterminado en el script.

bien lo que quiero es basicamente poder asignar varios password al script para distintos usuarios, hasta ahora el script solo permite un password en la variable $pass = '123';

Como puedo hacer para asignar varios password a esa variable asi cualquier password asignado funcione para poder hacer login

a continuacion pongo el script para ver si me dan una mano porque esta funcionando bien y no quiero tocar algo y dañarlo ya que soy novato en el tema PHP


<?php

/* Config Section */

$pass = '123'; // Set the password.
$cookiename = 'sascookie'; // Optional change: Give the cookie a name. Default is sascookie
$expirytime = time()+7200; // Optional change: Set an expiry time for the password (in seconds). Default is 1 hour.
$msg = 'Password Incorrecto'; // Optional change: Error message displayed when password is incorrect. Default is "Password incorrect".

/* End Config */

/* Logout Stuff - Sept 5, 2005 */

if (isset($_REQUEST['logout'])) {
setcookie($cookiename,'',time() - 7200); // remove cookie/password
if (substr($_SERVER['REQUEST_URI'],-12)=='?logout=true') { // if there is '?logout=true' in the URL
$url=str_replace('?logout=true','',$_SERVER['REQUEST_URI']); // remove the string '?logout=true' from the URL
header('Location: '.$url); // redirect the browser to original URL
}
show_login_page('');
exit();
}

$logout_button='<form action="'.$_SERVER['REQUEST_URI'].'" method="post"><input type="submit" name="logout" value="Logout" /></form>';
$logout_text='<a href="'.$_SERVER['REQUEST_URI'].'?logout=true">Logout</a>';

/* End Logout Stuff */

/* FUNCTIONS */
$encrypt_pass=md5($pass); // encrypt password

function setmycookie() {
global $cookiename,$encrypt_pass,$expirytime;
setcookie($cookiename,$encrypt_pass,$expirytime);
}

function show_login_page($msg) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Authorization Required</title>
<style type="text/css">
<!--
.error {color:#A80000}
body {font:90% Verdana, Arial, sans-serif;color:#404040}
#wrapper {width:800px;margin:0 auto;border:1px solid #606060}
#main {text-align:center;padding:15px}
#header {font:bold 130% Verdana, Arial, sans-serif;color:#DDDDDD;width:100%;height:5em;text-align:center;background:#A80000;line-height:5em}
#mid {margin:5em 0 5em 0}
#footer {font-size:75%;text-align:center;width:100%}
input {border:1px solid #606060; background: #DDDDDD}
-->
</style>
</head>
<body bgcolor="#000000">
<div id="wrapper">
<div id="header"><font color="#FFFFFF">Autorizacion Requerida</font></div>
<div id="main">
<div id="mid">

<form action="" method="POST">
<b><font face="Lucida Sans" size="6"><font color="#CC3300">PD</font><font color="#FFFFFF">Jupiter.info
| Canales Premium en Vivo<br>
<br>
</font></font><font face="Lucida Sans" size="3" color="#FFFF00">Su
sesión ha sido terminada , favor ingrese el codigo de activacion.</font></b><p><b><font color="#FFFFFF">
CODIGO:</font></b>&nbsp;<input type="password" name="password" size="20">&nbsp;
<input type="submit" value="Login">
<input type="hidden" name="sub" value="sub">
</p>
</form>
<div class=error><?=$msg?></div>
</div>
</div>
</div>
<div id="footer"><b><font color="#FFFFFF">Authentication by </font> <a href="http://www.pdjupiter.info">
pdjupiter.info</a><font color="#FFFFFF">&nbsp; Copyright 2011.</font></b></div>
</body>
</html>
<? }

/* END FUNCTIONS */

$errormsg='';
if (substr($_SERVER['REQUEST_URI'],-7)!='sas.php') {// if someone tries to request sas.php
if (isset($_POST['sub'])) { // if form has been submitted
$submitted_pass=md5($_POST['password']); // encrypt submitted password
if ($submitted_pass<>$encrypt_pass) { // if password is incorrect
$errormsg=$msg;
show_login_page($errormsg);
exit();
} else { // if password is correct
setmycookie();
}
} else {
if (isset($_COOKIE[$cookiename])) { // if cookie isset
if ($_COOKIE[$cookiename]==$encrypt_pass) { // if cookie is correct
// do nothing
} else { // if cookie is incorrect
show_login_page($errormsg);
exit();
}
} else { // if cookie is not set
show_login_page($errormsg);
exit();
}
}
} else {
echo 'Try requesting demo.php';
}
?>
  #2 (permalink)  
Antiguo 08/04/2011, 10:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 14 años, 10 meses
Puntos: 9
Respuesta: script para autentificar usuarios antes de entrar en ciertas paginas

y no seria mas facil con una base de datos? simplemente guardarias usuario y clave... a veces intentar facilitarnos la vida solo consigue complicarla
  #3 (permalink)  
Antiguo 08/04/2011, 10:43
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: script para autentificar usuarios antes de entrar en ciertas paginas

Gracias por tu ayuda Monxas

El codigo esta perfecto

lo que quiero es que distintos usuarios tengan su propio password para evitar un password global que afecte a todos en sus casas. lo que no me conviene es que al ser un solo password
entonces cuando lo actualize tendre que notificar a todos mientras que si son individuales passwords solamente tendre que notificar a ese usuario en particualar. No se si me explico

no quiero que el script cree varias cookies en un mismo ordenador sino la misma cookie que crea actualmente pero diferentes passwords (claves de acceso diferentes)

Ejemplo usuario1, usuario2 etc...

Saludos
  #4 (permalink)  
Antiguo 08/04/2011, 10:52
Avatar de Unxky28  
Fecha de Ingreso: marzo-2006
Mensajes: 82
Antigüedad: 18 años
Puntos: 1
Respuesta: script para autentificar usuarios antes de entrar en ciertas paginas

Puedes usar un array, por ejemplo:

Código PHP:
Ver original
  1. $Password=array(
  2.                     'Usuario1' =>'123',
  3.                     'Usuario2' =>'1234',
  4.                     'Usuario3' =>'1234'
  5.                     );

Y nada más asignarlo a la cokie.


Nota: Recuerda poner tu código con etiquetas de php, lo tienes en el editor de herramientas ya que asi se ve mal. Gracias,.

Saludos.
__________________
El Futuro esta en Tus Manos...
  #5 (permalink)  
Antiguo 08/04/2011, 10:55
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: script para autentificar usuarios antes de entrar en ciertas paginas

Gracias por el tiempo que dedicas

El asunto es que no soy experto soy novato y no se como asignarlo a la cookie
y disculpa si te quito tiempo pero la verdad es que no quiero dañar el script

saludos
  #6 (permalink)  
Antiguo 08/04/2011, 11:42
Avatar de Unxky28  
Fecha de Ingreso: marzo-2006
Mensajes: 82
Antigüedad: 18 años
Puntos: 1
Respuesta: script para autentificar usuarios antes de entrar en ciertas paginas

Aqui:
Código PHP:
Ver original
  1. /* FUNCTIONS */
  2. $encrypt_pass=md5($pass);   // encrypt password

En esa parte se lo asignas dependiendo del usuario que entre, tienes que verificar cual usuario entra y le asignas el password: Por ejemplo:

Código PHP:
Ver original
  1. $Usuario=$_POST["Usuario1"];
  2.  
  3. $encrypt_pass=md5($Password[$Usuario]);


Saludos.!
__________________
El Futuro esta en Tus Manos...
  #7 (permalink)  
Antiguo 08/04/2011, 19:07
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: script para autentificar usuarios antes de entrar en ciertas paginas

perfecto pero lo que quiero es que permita todos los usuarios declarados en el array que tambien esten en

$encrypt_pass=md5($Password[$Usuario]);

No un usuario especifico a la vez sino todos

Saludos y gracias otra vez

Etiquetas: autentificar, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:56.