Newsgroup: it.comp.lang.javascript
Titolo: Login

Non riesco a fare una cosa che probabilmente tutti sapete fare...
Ho creato la mia Home Page divisa in tre frame: testata, menu e corpo. Nella
testata ho messo la richiesta dell'utente e della password con il pulsante
per il login, mentre se è già in login esce solo il pulsante per il logout.
Per la procedura di login ho fatto una funzione in JS che controlla che sia
stato inserito l'utente, se non c'è visualizza l'errore e si focalizza sul
campo utente, mentre se è corretta richiamo la "testata.asp" per eseguire
poi il login, con l'istruzione document.location.href. Và tutto tranne che
ovviamente chiamando la pagina in questo modo non riesco a leggere i dati
del mio form, quindi Utente e Password. Come potrei fare, se è possibile
farlo, altrimenti lo faccio tutto in ASP e buonanotte!!!
Grazie 1000
Cristina

 farlo, altrimenti lo faccio tutto in ASP e buonanotte!!!
di post simili al tuo ne leggo spesso sia qui che
su it.comp.html, per la serie: come complicarsi
la vita. evitate di usare i frame. costruite
le pagine scrivendo codice  pulito, spostate
il piu' possibile le informazioni per presentare
i dati all'intero di file CSS e le pagine
verranno cosi leggere che potrete senza
problemi evitare i frame. se le pagine le generi
via ASP tanto meglio: sposti i blocchi che formano
la pagina dentro a delle sub (tipo "header",
"footer", ecc.), , cosi' non ripeti
lo stesso codice per ogni pagina.
ciao.
-- 
email: 
goldic...@yahoo.it
web: 
http://www.netspyke.com/deelan

 lo stesso codice per ogni pagina.
Non quella parola che vengono spontanee paranoie da vbzozzo.
Facciamo un poco di filosofigia della programmazione e riflettiamo sullo
statement piu' stupido che la storia abbia creato. Visto che e' microsoft
cerchiamo l'ennesimo acronimo.
Subnormale Uggiosa Baggianata.

 lo stesso codice per ogni pagina.
Ti ringrazio per la tua risposta, ma è un po' troppo di livello avanzato per
me. Mi puoi indicare qualche sito dove poter imparare le cose che mi hai
scritto, oppure darmi una breve spiegazione?
Ti ringrazio molto

 cerchiamo l'ennesimo acronimo.
hahaha, vbscript e' quanto di piu' idiota si
potesse inventare. sono stato costretto ad usarlo
per un bel pezzo, ma me ne sto lentamente allontanando.


 scritto, oppure darmi una breve spiegazione?
in effetti  ci sono molte cose che ho dato per scontate.
non e' chiaro  pero' che argomento e' troppo di livello
avanzato per te: HTML, CSS o ASP, o tutti e tre?


 avanzato per te: HTML, CSS o ASP, o tutti e tre?
Considera che HTML e ASP li conosco da 3 settimane, attraverso un piccolo
corso in internet, mentre CSS non l'ho mai visto. Per questo che se conosci
qualche sito, č meglio che una spiegazione, perchč sono un po' troppo
indietro ed avresti un bel po' di cose da spiegarmi... a meno che non sei
masochista ... ;-)
Grazie ancora
by by

Vi ringrazio, ma sono riuscita a risolvere il problema in questo modo:
<script language="JavaScript">
function ControllaLogin(form)
{
 if (form.Utente.value == "")
 {
  alert("Inserire i dati per il login!");
  form.Utente.focus();
 }
 else
 {
  form.action="testata.asp?login=true";
  form.submit();
 }
}
</script>
        <form method="post" name="modLogin">
<%
  if Session("Login") then
%>
       <input type="button" value="Logout" name="Logout"
onClick="document.modLogin.action='testata.asp?logout=true';document.modLogi
n.submit();">
<%
  else
%>
        <font face="Bangle">Utente</font>
        <input type="text" name="Utente" size="8" maxlength="8">&nbsp;
        <font face="Bangle">Password</font>
        <input type="password" name="Password" size="6" maxlength="6">&nbsp;
        <input type="button" value="Login" name="Login"
onClick="ControllaLogin(this.form);">
<%
  end if
%>
        </form>
Così facendo se è già in login visualizza solo il pulsante per il logout,
altrimenti chiede l'utente e la password, e se non si inserisce l'utente,
con la function ControllaLogin() non disturbo nemmeno il server dando
l'errore, altrimenti richiamo la mia pagina Testata.ASP per eseguire il
login.
Che ne dite fa così schifo?? Siate clementi, ricordatevi che sono una
principiante...
Grazie 1000

 principiante...
No, schifo non fa, anzi. Considerando che dici di essere una 
"principiante"..
E' possibile migliorare l'approccio generale, cmq, se vuoi.
Prima di tutto, l'action del form e' sempre "testata.asp" in ogni caso. 
Possiamo quindi gia' scrivere l'action nel tag form, visto che in ogni 
caso l'utente verra' mandato li', se verra' fatto un submit.
Quel che cambia e' la variabile che passi nella querystring, ma tale 
variabile e' essenzialmente inutile in quanto discrimina semplicemente 
l'azione effettuata (ovvero login o logout).. Ma questo gia' lo puoi 
sapere testando lato server quale pulsate ha fatto il submit.
Per risparmiare codice, inoltre, potresti mettere input di tipo 
"submit" invece che "button", e spostare il controllo della form 
nell'evento onsubmit.
Riassumendo, verrebbe qualcosa del genere:
<script language="JavaScript">
	function ControllaLogin(f){
		/* 	
			se non esiste il campo Utente, significa che 
			siamo in	logout, quindi submitta la form 
			senza fare 
			controlli 
		*/
		if (typeof f.Utente=="undefined") return true;
		var sMsg="",pEl=null;
		if (f.Utente.value==""){
			sMsg+=" - Utente mancante\n";
			pEl=f.Utente;
		}
		if (f.Password.value==""){
			sMsg+=" - Password mancante\n";
			pEl=pEl||f.Password;
		}
		if (sMsg!=""){
			alert("Attenzione!\n"+sMsg;			
			pEl.focus();
			return false;
		}
		return true;
	}
</script>
<form method="post" name="modLogin" action="testata.asp" 
onsubmit="return ControllaLogin(this)">
<% 
	if Session("Login") then
%>
	<input type="submit" value="Logout" name="Logout">
<%
	else
%>
	<font face="Bangle">Utente</font> 
	<!-- il tag font e' deprecated, e si dovrebbero 
		cmq usare font "standard" -->
	<input type="text" name="Utente" size="8" maxlength="8">&nbsp;
	<font face="Bangle">Password</font>
	<input type="password" name="Password" size="6" maxlength="6">
&nbsp;
	<input type="submit" value="Login" name="Login">
<%
	end if
%>
</form>
Sono un po' stanchino, quindi puo' darsi abbia fatto qualche castronata, 
ma dovrebbe esser a posto. Ci sono modi migliori per fare il check di 
form, ma non vorrei mettere troppa carne al fuoco, se sei all'inizio.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 E' possibile migliorare l'approccio generale, cmq, se vuoi.
Ti ringrazio anche dei preziosi consigli adesso li applico.
Ciao
Cristina

 Ti ringrazio anche dei preziosi consigli adesso li applico.
Ho omesso il controllo di che tipo di pulsante e' stato premuto lato 
server, perche' la davo come un prerequisito. Se cosi' non fosse, ci 
fosse qualche problema di implementazione, o non mi fossi spiegato bene 
e quindi qualche passaggio rimane un po' oscuro, fai pure un fischio :)


 form, ma non vorrei mettere troppa carne al fuoco, se sei all'inizio.
Non importa li imparerň piů avanti...
Grazie per tutto
Cristina

 Grazie per tutto
Di niente, figurati
