Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60

    Operare Con File E Session

    Buongiorno a tutti. Spero di avere azzeccato la sessione giusta, altrimenti vi prego di scusarmi fin da ora. Ho un problema con una pagina scritta in asp dove recupero l'elenco dei file in una cartella (sono i database presenti) e con quelli popolo una select. Fin qui tutto a posto. Il problema è che non ho idea di come fare per prendere il valore e metterlo in una session in modo da restituire il parametro al file connessione.asp che controlla il nome del database da utilizzare. Tutto questo mi serve per gestire i backup effettuati e permettere di accedere a un archivio. Riporto il codice della pagina archivio.asp. Grazie dell'aiuto


    ECCO IL CODICE

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <form name="form1" method="post" action="connesione.asp?">
    <%
    ' Dichiaro le variabili necessarie
    Dim objFso, objFolder, objFiles
    Dim strFolder, strFile, strPath, strExt

    ' percorso della cartella da leggere
    strPath = "../mdb-database/abmc/"
    strExt = ".mdb"

    ' Creo gli oggetti FSO necessari
    Set objFso = Server.createObject("Scripting.FileSystemObject")
    Set objFolder = objFso.GetFolder(Server.MapPath(strPath))
    Set objFiles = objFolder.Files

    %>
    <select name="bckArch" id="bckArch" onchange="this.form.submit();">
    <%
    ' Scorro tutti i file nella cartella
    for each strFile in objFiles

    ' Controllo l'estensione
    if Right(strFile.name, Len(strExt)) = strExt then

    ' popolo la select
    %>
    <option value="<%=strFile.name%>"><%=strFile.name%></option>
    <%
    end if
    Next
    %>
    </select>
    </form>

  2. #2
    visto così non devi usare le session...basta che lo richiami nella pagina connsessione.asp con request.form("bckArch") che in sostanza contiene il valore che scegli nella select..

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    innanzitutto grazie per la risposta. Mi è servita davvero. Adesso ho un altro problema da risolvere: con la select seleziono il database da utilizzare, lo passo al file connessione.asp (che utilizzo unicamente come include) con il request.form. Fin qui tutto ok, grazie al tuo suggerimento. Però devo reindirizzare la mia navigazione alla pagina default.asp mantenendo il valore/nome del database per tutto il resto della mia navigazione. E' per questo che ho pensato alla session, ma non so come fare. Puoi aiutarmi?

  4. #4
    allora metti la variabile nella stringa...

    metti qualcosa tipo:

    response.redirect "default.asp?url="&request.form("bckArch")&""

    questo comando, messo nella pagina connessione, ti rimanda alla pagina default, e ti porta il nome del db, via querystring...

    poi nella pagina default.asp, richiami il nome del db con request.querystring("url"), che è la variabile che hai passato con l'url...

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    Al request.querystring avevo pensato, ma l'ipotesi era stata da me scartata perché non voglio che si veda il nome del database nella barra degli indirizzi e soprattutto perché ho dei submit multipli realizzati in java che mi costringerebbero a modifiche radicali su tutto il sito che sinceramente vorrei evitare. Non esiste una soluzione più indolore?
    Grazie ancora

  6. #6
    allora usa la session....e ritorniamo alla tua prima richiesta...

    nella pagina connsessione.asp, metti:

    session("nomedatabase")=request.form("bckArch")

    e poi dove vuoi, richiami la variabile con

    session("nomedatabase")...che contiene il nome del db...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    Ho fatto così: nella pagina connessione.asp ho fatto come hai detto
    session ("stringa") = request.form("bckArch")

    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("/mdb-database/" & session("stringa"))

    al termine ho scritto
    if session("stringa") <> "" then
    response.redirect default.asp
    end if

    nella pagina default.asp ho inserito, prima degli include, la session:
    <%
    session("stringa")
    %>


    Il problema è che mi dà questo errore
    Microsoft OLE DB Provider for ODBC Drivers error '80004005'

    [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.

    /abmc/connessione.asp, line 8

    e la linea 8 corrisponde proprio a
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("/mdb-database/" & session("stringa"))

    per essere sicuro che la session funzionasse ho messo un response.write session("stringa") che effettivamente mi restituisce il valore giusto
    mannaggissima, come posso fare???

  8. #8
    ma non è che ti mancano solo i caratteri per la chiusura della variabile...cioè &" e la chiusura della stringa "...prova mettendo

    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("/mdb-database/" & session("stringa") &" ")

    perché altro non dovrebbe esserci...

    ah...e cmq la prima riga non serve...non serve che tu metta <%session("stringa")%> prima dell'include...
    la variabile è sempre pronta all'uso ...almeno finché non scade la session...

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    Niente da fare. Eppure funziona tutto: la session restituisce il valore giusto a connessione.asp e fa anche il redirect a default.asp restituendo ancora una volta il valore session. Però dà sempre lo stesso errore
    Microsoft OLE DB Provider for ODBC Drivers error '80004005'

    [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.

    /abmc/connessione.asp, line 8

    Sembra che la stringa di connessione abbia dei problemi, altrimenti non saprei come spiegarmi questo errore VVoVe: VVoVe:

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    ho fatto alcuni test mettendo nella stringa di connessione (path) e indicando come valore path:
    path = "/mdb-database/"
    dtb = session("stringa")
    path = path & dtb
    response.write path & "-----" & dtb

    il risultato è che non legge dtb e non lo legge neppure se lo sostituisco con session("stringa"). Ma che cavolo sto combinando....

    :master: :master:

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.