Database esterno al sito!! ::> aiuto

di il
12 risposte

Database esterno al sito!! ::> aiuto

Salve a tutti,
sono nuovo in questo forum e scrivo a voi perchènon so più a chi rivolgermi.
Il mio problema è il seguente: ho acquistato un dominio a pagamento e ho realizato una sezione protetta in asp.
In questo sito ci sono presenti 4 database (chat, forum, utenti, ecc.) . Il problema è questo:
ho scritto il percorso del database, ma con mia grande sorpresa ho scoperto che la cartella database è in sola lettura e non si puù abilitare in scrittura ed esecuzione.
Ho poi scoperto che il mio provider mi mette a disposizione una cartella "db" che però è esterna a tutto il sito:
il sito è presente in una cartella wwwroot e io dovrei mettere i database nella cartella db; ma come faccio a scrivere il percorso giusto?

Non so se mi sono spiegato bene!
Aspeto una risposta!

The-BiT :...:Last but not least :...:

12 Risposte

  • Re: Database esterno al sito!! ::> aiuto

    Devi creare una connessione dati ODBC e fare la connessione tramite il nome di tale connessione. Il server accede al database tramite questa connessione, ovunque sia, ma gli utenti esterni non possono accedere direttamente. Si fa questo per evitare che qualcuno si scarichi il database dal web.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Database esterno al sito!! ::> aiuto

    Ciao Giovanni,

    ti ringrazio di avermi risposto.
    Vorrei segnalarti però che non ho molta conoscenza di asp, ma posso dirti che utilizzo questo tipo di connessione:
    strDataBasePath = "../../db/mdb-database/utenti.mdb"

    Dove sta l'errore?
    Puoi aiutarmi, tenendo conto che sono praticamnete alle prime armi con l' ASP?


    The-BiT :...:Last but not least :...:
  • Re: Database esterno al sito!! ::> aiuto

    Qui ci sono alcuni esempi:
    <pre id=code><font face=courier size= id=code>
    strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("snitz_forums_2000.mdb") '## MS Access 2000 using virtual path
    strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/USERNAME/db/snitz_forums_2000.mdb") '## MS Access 2000 on Brinkster
    strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\dbroot\snitz_forums_2000.mdb" '## MS Access 2000
    strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("snitz_forums_2000.mdb") '## MS Access 97 using virtual path
    strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/USERNAME/db/snitz_forums_2000.mdb") '## MS Access 97 on Brinkster
    strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\inetpub\dbroot\snitz_forums_2000.mdb" '## MS Access 97
    strConnString = "Provider=SQLOLEDB;Data Source=SERVER_NAME;database=DB_NAME;uid=UID;pwd=PWD;" '## MS SQL Server 6.x/7.x/2000 (OLEDB connection)
    strConnString = "driver={SQL Server};server=SERVER_NAME;uid=UID;pwd=PWD;database=DB_NAME" '## MS SQL Server 6.x/7.x/2000 (ODBC connection)
    strConnString = "driver=MySQL;server=SERVER_IP;uid=UID;pwd=PWD;database=DB_NAME" '## MySQL w/ MyODBC v2.50
    strConnString = "driver={MySQL ODBC 3.51 Driver};option=4;server=SERVER_IP;user=UID;password=PWD;DATABASE=DB_NAME;" '##MySQL w/ MyODBC v3.51
    strConnString = "DSN_NAME" '## DSN
    </font id=code></pre id=code>

    Ti consiglio scaricarti lo Snitz Forum che contiene tutti i trucchi necessari in codice sorgente e funzionante, e così ti puoi fare un'idea come agire:

    http://forum.snitz.com/specs.as

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Database esterno al sito!! ::> aiuto

    Ciao,
    ho provato come hai detto tu, ma quando pubblico il tutto sul web, mi da errore come se non trovasse la pagina.
    Di seguito di scrivo il codice: spero che mi dai una mano, visto che è un mese che impazzisco su questo codice.
    DACCI UN OCCHIATA E VEDI SE C'E' QUALCOSA CHE NON VA:

    <%
    If isCommonCreated <> True Then
    'Determino il timeout dello script
    Server.ScriptTimeout = 90

    'Determino le dimensioni delle variabili
    Dim StrConnect 'Variabile
    Dim cString 'Variabile
    Dim adoCon 'Variabile
    Dim strSQL 'Variabile

    'Setto la variabile per una connessione ADO
    Set adoCon = Server.CreateObject("ADODB.Connection")

    '------------------------------------------------------------------------------------
    'Cambiare il path del database
    StrConnect = "Provider = Microsoft.Jet.OLEDB.4.0;
    Data Source = c:\domains\MIO_SITO.xx\db\database.mdb;
    Persist Security Info = False"
    '------------------------------------------------------------------------------------

    'Stringa per la connessione
    'Se la seguente linea non funziona, commentare con ' e scegliere un altra stringa
    'cString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(strDataBasePath)

    'Usa questa stringa se usi Access Database 2000 o 2002
    cString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\domains\MIO_SITO.XX\db\database.mdb


    'Usa questa stringa se usi DSN
    'cString = "DSN=NAME_OF_DSN"
    'Sostituisci il NAME_OF_DSN con il DSN

    adoCon.Open cString

    'Richiesta dei valori utente

    'Setta the variable to the value in the users cookie
    str_userscode = Request.Cookies("Login")("userCode")

    'Se l'user code non è vuota allora
    IF str_userscode <> "" THEN
    'Creo un nuovo record set
    Set rsUserLog = Server.CreateObject("ADODB.RecordSet")

    'Setta una nuova stringa sql
    StrSql="SELECT * FROM tbl_authors WHERE code='" & str_userscode & "';"

    'Apro il recordset e eseguo il codice sql
    rsUserLog.open StrSql,cString

    'Se non ci sono record che accertano l'identita dei dati dai cookies dell'utente
    'setta la variabile vuota

    If rsUserLog.EOF Then
    Response.cookies("Login")("userCode") = ""
    'Se non c'è nessun record allora
    Else

    ' Setta i valori del database con le variabili
    str_users_name = rsUserLog("name")
    str_users_password = rsUserLog("pass")
    str_users_nome = rsUserLog("nome")
    str_users_cognome = rsUserLog("cognome")
    str_users_email = rsUserLog("email")
    str_users_citta = rsUserLog("citta")
    str_users_provincia = rsUserLog("provincia")
    str_users_cap = rsUserLog("cap")
    str_users_authority = rsUserLog("authority")
    str_users_date = rsUserLog("dataregistrazione")
    str_users_code = rsUserLog("code")
    str_users_stato = rsUserLog("stato")
    str_users_pagina_web = rsUserLog("pagina_web")
    str_users_utentesospeso = rsUserLog("utentesospeso")
    End If

    'Chiudo
    rsUserLog.Close
    set rsUserLog = Nothing

    'Se l'user code è vuoto allora l'utente è guest
    Else
    Response.cookies("Login")("userCode") = ""
    End If

    '--------------------------------------------------------------------------------------------

    'Creo un nuovo record set
    set rsPageAttributes = Server.CreateObject("ADODB.RecordSet")

    'Query sql
    pageSql = "SELECT * FROM tbl_admin"

    'Apro il recordset e eseguo sql
    rsPageAttributes.open pageSql,cString

    adminEmail = rsPageAttributes("adminEmail")
    pageTitle = rsPageAttributes("TitoloSito")
    homePage = rsPageAttributes("homePage")
    mailServer = rsPageAttributes("mailHost")
    tipoMail = rsPageAttributes("tipoMail")
    conf_email = rsPageAttributes("conf_email")

    'Chiusura
    rsPageAttributes.Close
    set rsPageAttributes = Nothing

    '--------------------------------------------------------------------------------------------
    Else
    Dim isCommonCreated
    isCommonCreated = True
    End If

    '--------------------------------------------------------------------------------------------
    Function GetState(intState)
    Select Case intState
    Case 0
    GetState = "adStateClosed"
    Case 1
    GetState = "adStateOpen"
    End Select
    'Sintassi: GetState(adoCon.state)
    End Function
    '--------------------------------------------------------------------------------------------
    %>


    The-BiT :...:Last but not least :...:
  • Re: Database esterno al sito!! ::> aiuto

    Prova un po' questo:

    <pre id=code><font face=courier size= id=code>
    <%@ Language=VBScript %>

    <HTML>
    <HEAD>
    <TITLE>
    Prova di connessione
    </TITLE>
    </HEAD>
    <BODY>

    <%
    Option Explicit

    On Error Resume Next

    Dim adoCon
    Dim strConnString
    Dim strTmp
    Dim n
    Dim d

    strConnString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("./MIO_SITO.xx/db/database.mdb") '## MS Access 97 on Brinkster

    'Determino il timeout dello script
    Server.ScriptTimeout = 90

    'Setto la variabile per una connessione ADO
    Set adoCon = Server.CreateObject("ADODB.Connection")
    n = err.number
    d = err.Description

    if n then
    strTmp = "Errore: " & n & " - " & d
    %>
    <!-- HTML -->
    (1) ERRORE: <%=strTmp%><BR>
    <!-- // HTML -->
    <%
    endif

    adoCon.Open strConnString
    n = err.number
    d = err.Description

    if n then
    strTmp = "Errore: " & n & " - " & d
    %>
    <!-- HTML -->
    (2) ERRORE: <%=strTmp%><BR>
    <!-- // HTML -->
    <%
    endif

    %>

    </BODY>
    </HTML>
    </font id=code></pre id=code>

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Database esterno al sito!! ::> aiuto

    Ciao Giovanni,

    come precedentemente ti avevo detto non ho molte conoscenze di ASP. Perciò mi piacerebbe sapere cosa ci devo fare con questo codice in VBScript? E come devo fare a risolvere il mio problema?

    Aspetto una tua risposta!

    The-BiT :...:Last but not least :...:
  • Re: Database esterno al sito!! ::> aiuto

    Intendevo di metterlo in una pagina asp e lanciarla da remoto per vedere se ti si connette. Meno codice c'è, meno probabile è che vi sia eventualmente un altro errore che si nasconde da qualche parte. Poi il codice di gestione errori dovrebbe far vedere quale errore appare, sempre che il server gestisce errori, e da questi si vede meglio dove sta un eventuale errore.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Database esterno al sito!! ::> aiuto

    Ciao,
    ti ringrazio di avermi risposto.
    Ho provatoil tuo codice, l'ho inserito come hai detto tu in una pagina asp, ma nel momento in cui lo pubblico in rete, non mi fa vedere la pagina.
    Non èche per caso potresti testare lo script che ti ho postato qualche messaggio sopra?
    Aiutami a risolvere questo problerma.


    The-BiT :...:Last but not least :...:
  • Re: Database esterno al sito!! ::> aiuto

    Ho già provato il codice ma non posso andare oltre, perché dovrei sapere delle cose "segrete".

    Il codice che ho allegato dovrebbe far vedere almeno l'errore, oppure niente (solo il titolo pagina) se tutto va bene.

    Quindi l'errore a pagina bianca potrebbe nascondersi nel codice successivo. Controlla un po che le stringhe siano tutte fra virgolette doppie (credo che mancavano da qualche parte) e che il codice sia sintatticamente corretto. Se hai Visual Basic, provalo prima nell'interprete per il controllo sintattico.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Database esterno al sito!! ::> aiuto

    Ciao,
    come precedentemente ti avevo detto non ho grosse conoscenze di programmazione. Ma la cosa che più mi preme è realizzare questa area protetta.
    Dato che non so più a chi rivolgermi e, soprattutto, cosa fare, mi rivolgo a te!

    Se ti viene in mente qualcosa, qualsiasi cosa che possa aiutarmi, non esitare a scrivermi.

    Grazie per il tuo tempo!

    The-BiT :...:Last but not least :...:
  • Re: Database esterno al sito!! ::> aiuto

    Contattami tramite:

    http://www.y2ksw.com/vbulletin/sendmessage.ph

    Poi ti rispondo via email e poi mi dovresti mandare il database che vuoi utilizzare (anche vuoto) e i dati che caratterizzano il tuo sito, da partire da http://www.dominio.com/sito. Ricostruisco la situazione in locale e guardo cosa non va esattamente. Non c'è altra strada, credo. Non avere fretta però, in quanto non ho molto tempo durante la settimana ed oggi è quasi "passato".

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Database esterno al sito!! ::> aiuto

    Se come provider usi aruba posso darti una mano io ke ormai ho imparato ad adattarmi ad esso.cma ho notato leggendo uno dei tuoi post, che usi questa sintassi per agganciarti al db:
    ../../cartella/file.mdb
    il mio provider non accetta i puntini ad esempio quindi devo usare solo lo slash per salire di livello.



    prrrrr
Devi accedere o registrarti per scrivere nel forum
12 risposte