Control de Usuarios en Javascript

Chano
19 de Julio del 2004
Como puedo hacer una pagina web, que me controle el ingreso a varios usuarios, y que por cada usuario se cree una pagina web independiente.
Ejemplo quiero mostrar las notas de mis alumnos pero no quiero que otros alumnos vean las notas de los otros.
SI PUEDEN AYUDARME... Gracias

LiMaX
19 de Julio del 2004
La verdad es que con javascript este tipo de cosas se queda corto :(

Te recomiendo que lo hagas con php o asp, que son capaces de manejar bases de datos en las que tendrías los nombres de usuario y contraseñas bien guardaditas

Pero si esto te queda grande (a mi me queda y bastante) lo único que puedes hacer es lo que he hecho yo en un par de ocasiones...

creo una tabla con los nombres de usuario, otra con las contraseñas y otra con las páginas a abrirse.

var usuarios = new array();
usuarios[0] = "Juán"
usuarios[1] = "Pepe"
usuarios[2] = "Ana"

var claves = new array();
claves[0] = "1234"
claves[1] = "5678"
claves[2]= "90ab"

var paginas = new array ();
paginas[0] = "juan.html"
paginas[1] = "martinez.html"
paginas[3] = "quebuenaestashijadelamorhermoso.html"

Luego, con un formulario en el que tenemos lo siguiente:
<form name="formulario" id="formulario">
<input type="text" name="nombre" id="nombre" size="20">
<input type="text" name="clave" id="clave" size="20">
<input type="button" value="Botón" name="boton" onclick="validar()">
</form>

llamamos a una función llamada "validar()" que hace lo siguiente:

funcion validar() {
var encontrado = 0; //indicamos que no se ha encontrado porque no hemos empezado a buscar
var cnombre = formulario.nombre.value; //asigna a la variable el valor del imput
var cclave = formulario.clave.value; //asigna a la variable el valor del imput
for (var i=0; i<numerodealumnostotal, i++) { //recorre la tabla buscando coincidencias hasta el número total de alumnos expresado con un número
if (nombres[i] = cnombre) { //si el nombre coincide
if (claves[i] = cclave){ //si la clave tambien coincide
window.open(paginas[i]); //abre la página
encontrado = 1; //marca que ha sido encontrado
break; //esto rompe el bucle al encontrar coincidencias
}
else { //si la clave no coincide
alert("La contraseña para este usuario no es correcta"); //muestra un mensaje de error
encontrado = 2; //evita el mensaje de error siguiente
}
}
}
if (encontrado=0) { //si no se ha encontrado el usuario
alert("No se ha encontrado el usuario") //muestra un mensaje de error
}

LiMaX
19 de Julio del 2004
A ver.. que toy tontoyo hoy XD el mensaje anterior... olvídalo XD

Te pongo el código completo que ESTE SI QUE FUNCIONA

Se llama a esta página desde otra que indique que se va a entrar en una zona reservada.... así, si no se produce la entrada por la razón que sea vuelve a esta misma página.

Este script es acsi imposible de descifrarse con la opción de "ver código" ya que carga los comandos justo al cargar.

Lo malo es que si cargan la página con cualquier editor de textos podrán ver todas las claves.... pero es lo único que se puede hacer en javascript....


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Acceso controlado</title>
<script language="JavaScript">
<!--
function entrar(){
var usuarios = new Array(); //los diferentes nombes de usuario - the diferent user names
usuarios[0] = "yo"
usuarios[1] = "tu" //puedes añadir cuantos quieras - you can add as meny as you want

var claves = new Array(); //las diferentes claves - the difernt passwords
claves[0] = "a"
claves[1] = "z" //puedes añadir cuantos quieras - you can add as meny as you want

var paginas = new Array(); //las diferentes páginas - the difernt pages
paginas[0] = "mia.html"
paginas[1] = "tuya.html" //puedes añadir cuantos quieras - you can add as meny as you want

// si solamente quieres una página para todos elimina la tabla anterior y las dos rayas iniciales de la línea siguiente - if you just want a simple page for all, delete the last table and the two lines at the begining of the next sentence
// var pagina ="unica.html";

var ocurrio = new Array(); //variable que indica un resultado erróneo - var that indicates an error
ocurrio[0] = "No se encontró correspondencias entre el nombre de usuario y la clave o alguno de los dos no existe" //User name an password dont match or one of them does not exist
ocurrio[1] = "No se escribió el nombre de usuario" //No user name has been indicated
ocurrio[2] = "No se escribió la clave" //No password has been indicated

var j = 0; //variable que toma el valor según lo que haya ocurrido para mostrar el correspondiente mensaje - var that take value to show what has been wrong
var encontrado = 0; //variable que cambiará a 1 si se encuentra para no mostrar ningún mensaje de error - if found it changes to avoid any error mensange

var i = 0; //variable auxiliar - auxiliar var

var usuario = prompt ("Introduce tu nombre de usuario","") //pide el nombre de usuario - it ask for the user name
var clave = prompt("Introduce tu clave","") //pide la contraseña - it ask for the password

if (usuario == null) { //si le han dado a cancelar en el nombre de usuario - if "cancel" has been press when asking for the user name
j = 1; //indicamos el error 1 - ser error 1
}
else {
if (usuario == "") { //si han dejado en blanco el nombre - if "cancel" has been press when asking for the user name
j = 1; //indicamos el error 1 - set the error 1
}
else {
if (clave == null) { //si le han dado a cancelar en la clave - if "cancel" has been press when asking for the password
j = 2; //indicamos el error 2 - set the error 2
}
else {
if (clave == "") { //si han dejado en blanco la clave - if "cancel" has been press when asking for the
j = 2; //indicamos el error 2 - set the error 2
}
else { //si todo va bien - if everything goes right
for (i=0;i<2;i++){ // busca en las tablas - search on tables
if (usuario == usuarios[i]) { //si el nombre se ha encontrado... - if the user name has been founded
if (clave == claves[i]) { //y la clave coincide... - and password match
location = paginas[i]; //abre la página... - opens the page... + si has puesto solo una página borra esta línea y las dos líneas al principio de la siguiente - if you wanted just one page delete this line and the two lines at the begining of the next sentence
//location = pagina;
encontrado = 1; //indicamos que ha sido encontrado... - we indicate that has been founded
break; //y se sale - and stop
}
}
}
}
}
}
}
if (encontrado == 0) { //si no lo hemos encontrado, vemos que ha ocurrido... - if we haven't founded it, let's see what happends...
x = alert(ocurrio[j],""); // y muestra un mensaje de error correspondiente... - and show the correspondent error...
history.back(); //y vuelve a la página anterior - and go back to the previous page
//Si se dan los errores 1 y 2 a la vez solo se muestra el 1 - if errors 1 and 2 ocurrs only the fist is shown
}
}
//-->
</script>
</head>
<body onload="entrar()">
</body>
</html>