Newsgroup: it.comp.lang.javascript
Titolo: Password e altro

Salve a tutti. Sono una nuova 'new entry' del NG e anche principiante in
materia di Javascript per il quale chiedo cortesemente lumi, possibilmente
corredati di esempi, circa la seguente soluzione. Ho 3 pagine che si
chiamano index, prima, seconda.html . Ho anche 5 amici che si chiamano
pippo,pluto,qui,quo,qua. Vorrei gestire una situazione in cui ogni amico
entra nel mio sito tramite una password da me assegnata e ovviamente
criptata, ed accede solamente a determinate pagine da me stabilite.
Es.
amici             password              pagine              si/no
-----             ----------              ------               -----
pippo            bingo                    index,prima         si
pluto             bongo                   index,seconda     si
qui                bango                   index                   si
Il campo si/no serve per confermare o meno l'accesso, ovvero nel momento in
cui non voglio che pluto acceda ancora alle pagine prestabilite, segno con
un no tale campo e quindi nego l'accesso.
Spero di essere stata chiara.
Un grande ringraziamento a tutti coloro che mi risponderanno.
Ciao Gianna.

Il Sat, 4 Nov 2000 06:34:40 +0100, asukuo ha scritto.....

Per prima cosa ti dico che non ti conviene usare JavaScript, perché essendo il 
codice sorgente visibile, basta andare a sbirciare per trovare tutti i nomi di 
pagina.
Prima che lo chiedi ti avviso anche che NON ESISTE un metodo sicuro al 100% per 
nascondere il codice, a fronte di tutti i possibili e immaginabili script che 
trovi in rete.
Per quanto sofisticati siano, basta disabilitare l'interprete JavaScript del 
browser per vedere il sorgente.
Adesso la soluzione al tuo probblema.
Ti avviso prima di cominciare che devi cambiare i nomi delle pagine in 
"pag1.html", "pag2.html", "pag3.html" altrimenti lo script si complica di 
parecchio.... 
E creare una pagina comune "paginacomune.html" (o rendere comune una delle 
pagine che già hai, 
p.es
. "pag1.html" altrimenti il frameset ti dovrebbe far 
vedere un delle pagine riservate anche a chi non ha l'accesso.
Nella pagina "index.html" c'è, sotto forma di array il database degli utenti e 
lo script di validazione. Io ho usato username=password per semplicità, poi 
farai tu con le cifrature e compagnia bella.
Nella pagina del frameset ("gianna.html") c'è invece il database delle pagine 
autorizzate per ogni utente.
*TUTTI I LINK* delle pagine devono essere come i miei, con delle chiamate a 
JavaScript invece di normali <A HREF="pagina.html">..</A> altrimenti rischi che 
dalle altre pagine del sito ci sia accesso a pagina non autorizzate dall'utente 
attule.
E questo è un altro motivo per cui non ti conviene la soluzione JavaScript.... 
ma era divertente, quindi te l'ho realizzata.
Infine ti avverto che sotto Internet Explorer non funzionerà dall'hard disk, 
devi provarlo in rete o sotto web server locale.
***ATTENZIONE ALLE RIGHE LUNGHE****
Gli script sono tutti indentati, quindi ricostruiscile secondo indentazione.
----------------------------------------- pagina principale: "index.html"
<HTML>
<HEAD>
<SCRIPT>
<!--
/*
 * JavaScripting by 
ri.ri...@agora.stm.it
 - 
http://www.jsdir.com
 */
 
var user = new Array()
user[1] = new Array("pippo","pippo","si");
user[2] = new Array("pluto","pluto","no");
user[3] = new Array("qui","qui","si");
function accedi()
	{
	var usersel=0;
	with (document.login)
		{
		for (i=1;i<user.length;i++)
			{
			usr.value==user[i][0]?pwd.value==user[i][1]?user[i][2]=="s
i"?usersel=i:null:null:null;
			}
		if (usersel==0)
			{
			alert("Login Errato o Autorizzazione Negata.\n\n 
Riprova...");
			usr.value="";
			pwd.value="";
			usr.focus();
			}
			else
			{
			top.location.replace("gianna.html?user="+usersel);
			}
		}
	}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#ffffff">
<FORM NAME="login">
<INPUT TYPE="text" NAME="usr" VALUE="pippo"> <BR>
<INPUT TYPE="text" NAME="pwd" VALUE="pippo"> <BR>
<INPUT TYPE="button" VALUE=" Entra " onClick="accedi()">
</FORM>
</BODY>
</HTML>
----------------------------------------- frameset di navigazione "gianna.html"
<HTML>
<HEAD>
<SCRIPT>
<!--
/*
 * JavaScripting by 
ri.ri...@agora.stm.it
 - 
http://www.jsdir.com
 */
 
var uspage = new Array()
uspage[0] = new Array(1,2,3);
uspage[1] = new Array(1,2);
uspage[2] = new Array(2);
var url=location.search;
var user=parseInt(url.substring(url.indexOf("=")+1,url.length))-1;
alert(user+" "+uspage[user]);
function auth(pag)
	{
	var userOk=false;
	for (var i=0;i<uspage[user].length;i++)
		{
		pag==uspage[user][i]?userOk=true:null;
		alert(i+" "+userOk);
		}
	userOk?top.frames["nav"].location="pag"+pag+".html":alert("Non sei 
autorizzato");
	}
//-->
</SCRIPT>
</HEAD>
<FRAMESET ROWS="100%,0">
<FRAME SRC="pagcomune.html" NAME="nav">
</FRAMESET>
</HTML>
----------------------------------------- pagina comune "pagcomune.html"
<HTML>
<BODY BGCOLOR="#ffffff">
<H1>Pagina comune a tutti</H1> <BR> <BR> <BR> <BR>
<A HREF="javascript:top.auth(1)">Pagina 1</A> <BR> <BR>
<A HREF="javascript:top.auth(2)">Pagina 2</A> <BR> <BR>
<A HREF="javascript:top.auth(3)">Pagina 3</A> <BR> <BR>
</BODY>
</HTML>
----------------------------------------- pagine interne "pag1.html"
--------------- Le altre si chiameranno pag2.html pag3.html
<HTML>
<BODY BGCOLOR="#ffffff">
<H1>Pagina 1</H1> <BR> <BR> <BR> <BR>
<A HREF="javascript:top.auth(1)">Pagina 1</A> <BR> <BR>
<A HREF="javascript:top.auth(2)">Pagina 2</A> <BR> <BR>
<A HREF="javascript:top.auth(3)">Pagina 3</A> <BR> <BR>
</BODY>
</HTML>
-----------------------------------------------------------------------
E' un bel casotto, come ti avevo detto.
Naturalmente è cosa gradita lasciare i commenti sull'autore negli script se li 
userai :-)
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
Need a JavaScript password?
http://www.jspoint.it/staffscripts/script021/PazzWordProva/ingresso.html
------------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
                      Arthur Charles Clarke
------------------------------------------------------------------------

Questo script non funzona bene:
<SCRIPT>
var uspage = new Array()
uspage[0] = new Array(1,2,3);
uspage[1] = new Array(1,2);
uspage[2] = new Array(2);
var url=location.search;
var user=parseInt(url.substring(url.indexOf("=")+1,url.length))-1;
alert(user+" "+uspage[user]);
function auth(pag)
	{
	var userOk=false;
	for (var i=0;i<uspage[user].length;i++)
		{
		pag==uspage[user][i]?userOk=true:null;
		alert(i+" "+userOk);
		}
	userOk?top.frames["nav"].location="pag"+pag+".html":alert("Non sei 
autorizzato");
	}
</SCRIPT>
Il pezzo che non va č "uspage[2] = new Array(2);"
Non mi viene accettato l'array di un elemento.... se fate alert(uspage[2]) 
viene fuori solo la virgola, ed il ciclo "for (var i=0;..." gira due volte
Se invece gli elementi sono due o piů nessun problema! :-O
Non riesco a spiegarmelo, qualcuno vuol provare gli script che ho passato a 
Gianna nell'altro mex?
O č un Bug?


 ha scritto nel messaggio
news:MPG.146f6ce82...@news.libero.it...


 Complimenti per il progetto.
ariGrazie.
Commenti/suggerimenti per l'altro appena mandato?
Quello di Befi al quale hai risposto anche tu.
-- 
Ciao, Riccardo
------------------------------------------------------------------------


 evidentemente?
Ehm, come direbbe un mio amico "nopperdio". :)
Cosi' crei un array che consta di UN elemento, il cui elemento ha come
valore "2"
myarray = new Array('2');
Mentre cosi' crei un Array di DUE elementi "vuoti"
myarray = new Array(2);
In questo modo, crei un array di due elementi, il primo e' uguale a uno ed
il secondo e' uguale a "e".
myarray = new Array('1','e');
Non capisco come mai, ma questo e' un argomento in cui molti non si
"trovano".
Ricordo che anche Hyperion, ai tempi, fece la medesima domanda.

 Quello di Befi al quale hai risposto anche tu.
[]
Non ho ancora avuto tempo per guardarlo, anche perche' scrivete codice
con una velocita' insostenibile.
Saluti, Paolo

 Ricordo che anche Hyperion, ai tempi, fece la medesima domanda.
.... specie la domenica mattin con 3 ore di sonno addosso :-)))


 con una velocita' insostenibile.
:-))
C'č chi lo scrive buono e brillante e chi lo scrive veloce e opaco!
Io appartengo alla seconda categoria :-)))


 wrote in message MPG.146f6be528
f9f019...@news.libero.it...
Grazie per la cortese disponibilità. Proverò. Rinnovo ulteriormente la mia g
ratitudine.
Ciao Gianna.