Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    5

    Problema variabili di sessione

    Ciao a tutti,
    premetto che sono nuovo dell'ASP e che quindi la domanda potrà avere anche una risposta molto semplice e magari per voi banale!! (lo spero vivamente)
    Per prendere confidenza con il linguaggio sto lavorando su come realizzare il log in utente e le limitazioni di accesso alle pagine.
    Purtroppo mi sono accordo che non si effettua il passaggio delle variabili di sessione da una pagina .asp ad un altra, e sinceramente non capisco il perche!! ho provato a far girare anche dei codici trovati su internet oppure il codice proposto da Dreamweaver, ma in tutti i casi una volta effettuato il log in se cerco di andare ad una pagina protetta dagli accessi vengo sempre respinto!!
    ho provato provato anche a stampare con response.write la variabile che utilizzo per fare il controllo ma non mi viene restituito alcun valore.

    Sapete aiutarmi?

    Grazie mille
    Alberto

  2. #2
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    mostraci la parte essenziale del codice...

  3. #3
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    sopratutto come hai strutturato il global.asa

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    5
    Ciao,
    questo è pari pari il codice proposto da dreamweaver:

    QUESTO E' IL CODICE PER IL LOG-IN

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>


    <%
    ' *** Validate request to log in to this site.
    MM_LoginAction = Request.ServerVariables("URL")
    If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Server.HTMLEncode(Request.QueryString)
    MM_valUsername=CStr(Request.Form("textfield"))
    If MM_valUsername <> "" Then
    MM_fldUserAuthorization=""
    MM_redirectLoginSuccess="logok.asp"
    MM_redirectLoginFailed="lognook.asp"
    MM_flag="ADODB.Recordset"
    set MM_rsUser = Server.CreateObject(MM_flag)
    MM_rsUser.ActiveConnection = MM_conn_STRING
    MM_rsUser.Source = "SELECT Nome, PSW"
    If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
    MM_rsUser.Source = MM_rsUser.Source & " FROM Tabella1 WHERE Nome='" & Replace(MM_valUsername,"'","''") &"' AND PSW='" & Replace(Request.Form("textfield2"),"'","''") & "'"
    MM_rsUser.CursorType = 0
    MM_rsUser.CursorLocation = 2
    MM_rsUser.LockType = 3
    MM_rsUser.Open
    If Not MM_rsUser.EOF Or Not MM_rsUser.BOF Then
    ' username and password match - this is a valid user
    Session("MM_Username") = MM_valUsername
    If (MM_fldUserAuthorization <> "") Then
    Session("MM_UserAuthorization") = CStr(MM_rsUser.Fields.Item(MM_fldUserAuthorization ).Value)
    Else
    Session("MM_UserAuthorization") = ""
    End If
    if CStr(Request.QueryString("accessdenied")) <> "" And false Then
    MM_redirectLoginSuccess = Request.QueryString("accessdenied")
    End If
    MM_rsUser.Close
    Response.Redirect(MM_redirectLoginSuccess)
    End If
    MM_rsUser.Close
    Response.Redirect(MM_redirectLoginFailed)
    End If
    %>

    E QUESTA E' LA PAGINA DOVE SI CONTROLLA SE IL LOG IN E' CORRETTO:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <%
    ' *** Restrict Access To Page: Grant or deny access to this page
    MM_authorizedUsers=""
    MM_authFailedURL="lognook.asp"
    MM_grantAccess=false
    If Session("MM_Username") <> "" Then
    If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
    (InStr(1,MM_authorizedUsers,Session("MM_UserAuthor ization"))>=1) Then
    MM_grantAccess = true
    End If
    End If
    If Not MM_grantAccess Then
    MM_qsChar = "?"
    If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
    MM_referrer = Request.ServerVariables("URL")
    if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
    MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
    Response.Redirect(MM_authFailedURL)
    End If
    %>


    Inoltre adesso ho un'altro errore che non mi permette la visualizzazione nemmeno della prima pagina vi riporto il report di IE:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
    [Microsoft][Driver ODBC Microsoft Access]Errore generale. Impossibile aprire la chiave 'Temporary (volatile) Jet DSN for process 0xe48 Thread 0xf78 DBC 0x1067cec Jet' del Registro di sistema.
    /Default.asp, line 14

    Ovviamente sembra u nerrore di connessione al database, ma non capisco il perche!
    la stringa usata in dreamweaver è la seguente:
    "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\Inetpub\wwwroot\db.mdb"

    Sapreste aiutarmi anche per questo problema?
    Più in generale sto trovando parecchie difficolta per riuscire a far girare con certezza il codice in locale! esiste qualche guida che spiega come configurare IIS e tutto quello he bisogna fare prima di iniziare a prorammare?

    Grazie mille e buon anno a tutti!

  5. #5
    codice:
    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
    [Microsoft][Driver ODBC Microsoft Access]Errore generale. Impossibile aprire la chiave 'Temporary (volatile) Jet DSN for process 0xe48 Thread 0xf78 DBC 0x1067cec Jet' del Registro di sistema.
    /Default.asp, line 14
    A seconda di come IIS è settato sulla tua macchina puoi incappare in questo "errore" (che errore non è) ...quando provi a eseguire una pagina che fa riferimento al DB e nello stesso momento hai il DB aperto con ACCESS.

    codice:
    Sessione
    Di default ISS e la sua configurazione ti permettono di usare tranquillamente le sessioni, hai provato a vedere se la sessione esiste oppure no?
    
    controlla la sessione chiamata "Session("MM_Username")" ...se ne tiene 1 le tiene tutte...
    detto questo...
    un consiglio...non usare dreamweaver per scrivere codice ...alle volte (il 95% dei casi) scrivere il codice a mano vuol dire

    - codice + pulito
    - imparare e capire cosa stai facendo
    - risolvere piccoli intoppi molto + facilmente
    - risparmiare righe di codice

    ...con dreamweaver è il contrario dei 4 punti scritti sopra...
    Tanto...lo fanno tutti... posso farlo anche io vero?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    5
    Ciao,
    Sulla connessione al DB ho risolto!! grazie mille!!

    per quanto riguarda l'uso di Dreamweaver mi sono accorto pure io che crea tonnelate di codice anche per le cose più semplici!! rendendo l'apprendimento difficoltoso!!

    in ogni caso ho provato ad usare anche altri codici trovati sulla rete, ma niente da fare!! sembra che le variabili di sessione non vengano mai inizializzate o prese in conisderazione.
    Eliminando il codice di controllo log in dalla pagina e inserendo un semplice response.write della variabile non mi appare proprio niente!!
    Può essere un problema di configurazione di IIS?
    Esiste un altro modo (che non sia la stampa a video) per vedere l'andamento delle variabili del sito?

    Grazie mille
    alberto

  7. #7
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    se il browser non ha i cookie abilitati, le var di sessione non possono fungere ... a questo punto partirei da più a monte..ovvero hai i cookie abilitati?

    se la risposta è positiva, prova con codice pulito

    codice:
    session("test") = "valore variabile"
    response.write("--" & session("test") & "--")
    ovviamente se il write restituisce ---- qlc non va

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    5
    Ciao,
    si i cookie erano abilitati.

    ho provato ad inserire le due righe nei file, ma il risultato non cambia,
    ovvero se metto il response.write nel file dove inizializzo la variabile tutto ok.

    ma se il response.write lo vado a mettere in un altro file collegato del progetto, questa variabile non c'è piùe micpmaiono solo le quattro lineette!!

    difatti il mio problema non era sul log-in che avveniva correttamente ma sul seguente controllo sull'accesso della pagina che non mi riconosceva gia più come utente "loggato".

    Sembra quasi che quando carica una nuova pagina vengano perse tutte le variabili.
    E per questo che mi domandavo se non fosse un problema di IIS e se esistesse una guida alla configurazione.

    Grazie di nuovo per l'aiuto.

  9. #9
    global.asa <------------------------------------

    :berto: ... sembra proprio un problema di configurazione se ...come dici ...nella stessa pagina fai:
    codice:
    session("test") = "valore variabile"
    response.write("--" & session("test") & "--")
    e tutto funzia ... vuol dire che le sessioni le legge ma appunto ...non le tiene
    per cui prova a vedere il global asa
    Tanto...lo fanno tutti... posso farlo anche io vero?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    5
    il global.asa che ho inserito è il seguente (sempre tenendo come test le due righe di Fichico):

    <SCRIPT LANGUAGE=VBScript RUNAT=Server>

    Sub Session_OnStart()
    session("test")= "prova"
    End Sub

    </SCRIPT>

    in questo modo nella prima pagina mi trovo "--Valore variabile--"
    ma se poi ho dei link ad altre pagine del progetto la variabile "Test" ha sempre come valore "prova".
    Dove sbaglio??

    Grazie di nuovo per la pazienza.

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.