Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Forse ho un problema con la variabile di sessione

    Prima di tutto mi scuso per il titolo ambiguo, però sono un principiante (allo sbaraglio) ed, effettivamente, non so bene quale sia il mio problema.
    Provo a spiegarmi. Ho creato (copiando qua e la) diverse pagine ASP
    (anagrafe.asp, inserisci.asp, modifica.asp ...) alle quali si accede tramite una pagina di Login. Per evitare che un utente non registrato acceda alle altre pagine ho creato una variabile di sessione che richiamo all'inizio del codice di ogni pagina in modo che, se la variabile non è attiva, vengo reindirizzato alla pagina di Login. Ad ogni modo nella pagina di Login ho inserito un link ad un form ("nuovo.asp") per l'inserimento dei dati, necessari alla registrazione, nel database. Il mio problema è qui: inseriti tutti i dati nel form, quando clicco "Registra", vengo reindirizzato alla
    pagina di Login (questo mi ha fatto pensare alla variabile di sessione) senza che i dati vengano scritti nel db. Che cosa ho dimenticato nel codice???
    Non so se devo aggiungere altri particolari, se devo mandare anche il codice o se questo tipo di richiesta non è adatta al forum.
    Comunque grazie a tutti, ciao.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Hai sottoposto alla variabile di sessione anche la pagina di registrazione mentre quella devi "liberarla" dal controllo...

    Roby

  3. #3
    No, nella pagina di registrazione non ho messo il controllo della variabile di sessione.
    Però nel codice della pagina di registrazione,non sapendo se fosse necessario, ho inizializzato la variabile di sessione (nel mio caso corrisponde al nome utente che prendo dal form) prima di aprire il db ed inserire i dati. Però anche così non funziona.
    Grazie, ciao.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    No, la variabile di sessione deve essere inizializzata DOPO il controllo del login.

    Roby

  5. #5
    Anche se non la metto ottengo lo stesso risultato.
    Boh! Forse ho sbagliato da qualche altra parte, però questa pagina è praticamente la copia (ad eccezione della variabile di sessione, ad una diversa disposizione del form e di un valore che voglio inserire, da codice, nel db) di una pagina intera (inserisci.asp) che, appunto, permette di inserire nuove anagrafiche nel db. Questa funziona.
    Grazie, ciao.

  6. #6
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    ciao, posta il codice che usi in nuovo.asp
    Jupy

  7. #7
    Scusate il ritardo, ma ieri sera ho "abbandonato" per ... sonno.
    Però, se avete ancora abbastanza pazienza per aiutarmi, mando il codice di "nuovo.asp"
    codice:
    <%@LANGUAGE = JScript%>
    
    
    
    
    
    
    <%
    	var azione= new String(Request.QueryString("azione"));
    
    
    
    %>
    
    <html>
    	<head>
    
    	</head>
    <body>
    
    
    
    
    
    
    
    
    
    <table align="center" width="90%" cellpadding="1" cellspacing="0" border="1">
    <script Language="JavaScript" Type="text/javascript"><!--
    function FrontPage_Form1_Validator(theForm)
    {
    
      if (theForm.nome.value == "")
      {
        alert("Inserire un valore per il campo \"nome\".");
        theForm.nome.focus();
        return (false);
      }
    
      if (theForm.nome.value.length > 255)
      {
        alert("Inserire al massimo 255 caratteri nel campo \"nome\".");
        theForm.nome.focus();
        return (false);
      }
    
      if (theForm.cognome.value == "")
      {
        alert("Inserire un valore per il campo \"cognome\".");
        theForm.cognome.focus();
        return (false);
      }
    
      if (theForm.cognome.value.length > 255)
      {
        alert("Inserire al massimo 255 caratteri nel campo \"cognome\".");
        theForm.cognome.focus();
        return (false);
      }
    
      if (theForm.cap.value == "")
      {
        alert("Inserire un valore per il campo \"cap\".");
        theForm.cap.focus();
        return (false);
      }
    
      if (theForm.cap.value.length > 5)
      {
        alert("Inserire al massimo 5 caratteri nel campo \"cap\".");
        theForm.cap.focus();
        return (false);
      }
    
      if (theForm.citta.value == "")
      {
        alert("Inserire un valore per il campo \"citta\".");
        theForm.citta.focus();
        return (false);
      }
    
      if (theForm.citta.value.length > 255)
      {
        alert("Inserire al massimo 255 caratteri nel campo \"citta\".");
        theForm.citta.focus();
        return (false);
      }
      
        if (theForm.indirizzo.value == "")
      {
        alert("Inserire un valore per il campo \"indirizzo\".");
        theForm.indirizzo.focus();
        return (false);
      }
    
      if (theForm.indirizzo.value.length > 255)
      {
        alert("Inserire al massimo 255 caratteri nel campo \"indirizzo\".");
        theForm.indirizzo.focus();
        return (false);
      }
      
        if (theForm.email.value == "")
      {
        alert("Inserire un valore per il campo \"email\".");
        theForm.email.focus();
        return (false);
      }
    
      if (theForm.email.value.length > 255)
      {
        alert("Inserire al massimo 255 caratteri nel campo \"email\".");
        theForm.email.focus();
        return (false);
      }
      
          if (theForm.password.value == "")
      {
        alert("Inserire un valore per il campo \"password\".");
        theForm.password.focus();
        return (false);
      }
    
      if (theForm.password.value.length < 3)
      {
        alert("Inserire almeno 3 caratteri nel campo \"password\".");
        theForm.password.focus();
        return (false);
      }
      
      if (theForm.password.value.length > 15)
      {
        alert("Inserire al massimo 15 caratteri nel campo \"password\".");
        theForm.password.focus();
        return (false);
      }
      
            if (theForm.password1.value != theForm.password.value)
      {
        alert("Password di conferma errata, ridigitare prego.");
        theForm.password1.value = ("");
        theForm.password1.focus();
        return (false);
      }
      
      return (true);
    }
    
    //--></script><form method="POST" action="inserisci.asp?azione=ADD" onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1" language="JavaScript">
    	<tr>
    		<td colspan="4" align="center">Inserisci i tuoi dati </td>
    	</tr>
    	<tr>
    		<td width="50%" colspan="2">Nome*<input type="text" name="nome" maxlength="255" style="width: 100%;" size="20"></td>
    		<td width="50%" colspan="2">Cognome*<input type="text" name="cognome" maxlength="255" style="width: 100%;" size="20"></td>
    	</tr>
    	<tr>
    		<td colspan="1">Cap*<input type="text" name="cap" maxlength="5" style="width: 100%;" size="20"></td>
    		<td colspan="1">Città*<input type="text" name="citta" maxlength="255" style="width: 100%;" size="20"></td>
    		<td colspan="2">Indirizzo*<input type="text" name="indirizzo" maxlength="255" style="width: 100%;" size="20"></td>
    	</tr>
    	<tr>	
    		<td width="25%" colspan="1" align="center">Sesso
    			<select name="sesso">
    				<option value="M">M</option>
    				<option value="F">F</option>
    			</select>
    		</td>
    		<td width="25%" colspan="1">Telefono<input type="text" name="telefono" maxlength="255" style="width: 100%;" size="20"></td>
    		<td width="50%" colspan="2">E-mail*<input type="text" name="email" maxlength="255" style="width: 100%;" size="20" value="@"></td>
    	</tr>
    	<tr>
    		<td width="50%" colspan="2">Password* (min. 3 - max. 15 caratteri alfanumerici)<input type="password" name="password" maxlength="15" style="width: 100%;" size="20"></td>
    		<td width="50%" colspan="2">Conferma password*<input type="password" name="password1" maxlength="15" style="width: 100%;" size="20"></td>
    	</tr>
    	<tr>
    		<td colspan="4" align="right"><input type="submit" value="Registra"></td>
    	</tr>
    	
    </form>
    </table>
    
    
    
    
    
    
    <%
    	if (azione== "ADD")
    	{
    		var nome = new String(Request.Form("nome"));
    		var cognome = new String(Request.Form("cognome"));
    		var email= new String(Request.Form("email"));
    		var password= new String(Request.Form("password"));
    		var indirizzo = new String(Request.Form("indirizzo"));
    		var cap = new String(Request.Form("cap"));
    		var citta = new String(Request.Form("citta"));
    		var telefono = new String(Request.Form("telefono"));
    		var sesso = new String(Request.Form("sesso"));
    		var livello = 1;
    		if (nome == "" || cognome == "")
    		{
    		 Response.Redirect("nuovo.asp");
    		}
    		else
    		{
    		 var Rs = new ActiveXObject("ADODB.Recordset");
    			 Rs.Open("anagrafe",Cn,3,3);
    				 Rs.AddNew();
    					 Rs("nome") = nome;
    					 Rs("cognome") = cognome;
    					 Rs("email") = email;
    					 Rs("indirizzo") = indirizzo;
    					 Rs("cap") = cap;
    					 Rs("citta") = citta;
    					 Rs("telefono") = telefono;
    					 Rs("sesso") = sesso;
    					 Rs("livello") = livello;
    				 Rs.Update();
    			 Rs.Close();
    		 Cn.Close();
    		 Response.Write("<p align=\"center\">Inserimento effettuato!</p>");
    		}
    	}
    %>
    
    </body>
    </html>

    Ci sono 4 include in "nuovo.asp" (config_nuovo.inc, style.inc, header.inc e footer.inc) però penso che l'unico che potrebbe dare problemi è config_nuovo.inc il cui codice è:
    codice:
    <%
    	Response.Buffer = true;
    	var Cn = new ActiveXObject("ADODB.Connection");
    	Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb"));
    %>
    "style.inc" è un foglio di stile, gli altri due l'intestazione ed il piè di pagina che sono fissi per tutti i files. Fammi sapere se devo mandare anche questi.
    Ciao, e grazie di nuovo.

  8. #8
    Fai vedere il codice di inserisci.asp.
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  9. #9
    Se invece, come mi sembra di capire, è la stessa pagina "nuovo.asp" a provvedere all'inserimento dei dati, allora l'action del form deve essere

    action="nuovo.asp?azione=ADD"
    e non

    action="inserisci.asp?azione=ADD"
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  10. #10
    Grazie, grazie, grazie ... e scusa (a tutti) per l'errore ingenuo.
    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.