Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30

    Login Utente e indirizzamento a pagina personale

    Ciao ragazzi,
    sono nuovo in questo forum e nonostante abbia cercato nei vecchi post non ho ancora trovato una risposta al mio problema.

    Ho creato un sito con un'area riservata (accesso tramite username e password)
    il mio database contiene 3 campi:
    User: Utente1 - Utente2 - etc.
    Pass: pass1 - pass2 - etc.
    Link: utente1.asp - utente2.asp - etc.

    Come faccio a far aprire la pagina utente1.asp quando fa il login l'Utente1 e rispettivamente per l'utente2?

    Attraverso le funzioni di DW sembra che posso indirizzare in caso login esatto solo e sempre alla stessa pagina:
    Potete aiutarmi a risolvere il problema?
    Grazie mille
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di Girogio
    Registrato dal
    May 2007
    Messaggi
    366
    Allora farlo con dreamweaver è un casino mortale, del tipo:

    codice:
    <%
    ' *** Validate request to log in to this site.
    MM_LoginAction = Request.ServerVariables("URL")
    If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Request.QueryString
    MM_valUsername=CStr(Request.Form("Username"))
    If MM_valUsername <> "" Then
      MM_fldUserAuthorization=""
      MM_redirectLoginSuccess="loginok.asp"
      MM_redirectLoginFailed="login.asp"
      MM_flag="ADODB.Recordset"
      set MM_rsUser = Server.CreateObject(MM_flag)
      MM_rsUser.ActiveConnection = MM_connRegistrazione_STRING
      MM_rsUser.Source = "SELECT Username, Password"
      If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
      MM_rsUser.Source = MM_rsUser.Source & " FROM Login WHERE Username='" & Replace(MM_valUsername,"'","''") &"' AND Password='" & Replace(Request.Form("Password"),"'","''") & "'"
      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
    %>
    
    <form name="form1" id="form1" method="POST" action="<%=MM_LoginAction%>">
    Metti poi qui il tuo form...
    E' un esempio trovato in giro su internet...con google:area riservata!
    Ciao.
    Giorgio.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    Il post che mi hai fatto corrisponde esattamente al codice che trovo nella mia pagina di login.
    Come puoi anche tu notare, nel caso di login esattto fa riferimento a un indirizzo statico e non a una variabile:

    MM_redirectLoginSuccess="loginok.asp"
    MM_redirectLoginFailed="login.asp"


    basterebbe, secondo me, trovare quale a quale variabile temporanea viene associato il valore del campo User e poi concatenarlo con l'estensione asp

  4. #4
    Utente di HTML.it L'avatar di Girogio
    Registrato dal
    May 2007
    Messaggi
    366
    Ok!!
    Non avevo ben letto cosa ti serviva.
    Spero che qualcuno più esperto di me ti possa essere di aiuto; io alzo bandiera bianca, nn sò come aiutarti.
    Mi dispiace..ciao.
    Giorgio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    SOLUZIONE TROVATA:

    Ragazzi, smanettando un po' ho trovato la soluzione

    Basta modificare la stringa in questo modo:

    MM_redirectLoginSuccess=MM_valUsername


    ora il 99% del problema e' risolto.
    Mancherebbe una sola cosa ... se non e' troppo qualcuno mi saprebbe dire anche come specificare il percorso del file personale?

    Grazie a tutti

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    1
    Allora io ho risolto così:
    Per ogni utente creo una cartella chiamata come l'utente, all'interno della quale metto una pagina "prottetta_home.asp"
    Quando l'utente fa il login, se tutto ok, nella pagina di verifica lo reindirizzo automaticamente in una pagina dedicata a lui.
    L'unico problema che ho è che non riesco a creare automaticamente la cartella e la pagina in sede di registrazione utente, e devo invece crearle manualmente.


    <%
    ' PRELEVA L'USERNAME E LA PASSWORD INSERITI
    Username = Replace(Request.Form("username"), "'", "''")
    Password = Replace(Request.Form("password"), "'", "''")
    ' CONTROLLA INNANZITUTTO SE E' STATO PASSATO UN VALORE, CIOE' VERIFICA
    ' CHE I CAMPI "Username" e "Password" NON SIANO VUOTI
    IF Username <> "" and Password <> "" then
    ' TUTTO OK...
    ' PERCORSO DEL DATABASE
    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdbdatabase/database.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open url_DB
    Set RecSet = Server.CreateObject("ADODB.Recordset")
    ' COME SI NOTA, LA PARTE "... AND ATTIVO = 1" SERVE
    ' PER VERIFICARE SE L'UTENTE HA ATTIVATO LA SUA
    ' REGISTRAZIONE, IN CASO CONTRARIO
    ' ESSO RISULTERA' INESISTENTE E NON POTRA' ACCEDERE ALLE
    ' SEZIONI RISERVATE DEL SITO...
    SQL = "SELECT * FROM Utenti where username = '" & username & "' and password = '" & password & "' and attivo = 1"
    RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
    ' CONTROLLA SE L'UTENTE ESISTE
    IF Not RecSet.Eof Then
    ' UTENTE ESISTENTE
    ' IMPOSTA DUE SESSION:
    ' - LOGGATO, CON IL VALORE DI TRUE
    ' - USERNAME, CON IL SUO USERNAME
    Session("Loggato") = True
    Session("Username") = Username
    Else
    ' ALTRIMENTI ... UTENTE NON ESISTENTE
    ' IMPOSTA LA SESSION "LOGGATO" CON
    ' IL VALORE DI FALSE
    Session("Loggato") = False
    End IF
    ' Chiude la connessione al DB
    RecSet.Close
    Set RecSet = Nothing
    Conn.Close
    Set Conn = Nothing
    ' FA LA CONDIZIONE PER VERIFICARE SE L'UTENTE E' STATO
    ' IDENTIFICATO O MENO
    IF Session("Loggato") = True Then
    Response.Redirect "\_privato\" & username &"\protetta_home.asp"
    Else

    ' DATI NON CORRETTI (UTENTE INESISTENTE - USERNAME/PASSWORD NON CORRETTI)
    %>
    <hr>
    <p align="center"><font face="Verdana" size="2">Username/Password non corretti!</font></p>
    <hr>
    <%
    End IF
    Else
    ' CAMPI "USERNAME" E "PASSWORD" VUOTI
    %>
    <hr>
    <p align="center"><font face="Verdana" size="2">Compila correttamente tutti i campi!</font></p>
    <hr>
    <%
    End IF
    %>
    </body>
    </html>

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    Pecri, ti ringrazio per aver continuato la discussione su questo argomento.
    Penso che dobbiamo percorrere un passo alla volta. Ti anticipo subito che in merito alla tua richiesta di creare automaticamente la cartella e la pagina non ci bovrebbero essere problemi. Tempo fa creai la stessa cosa in java e in c++ e tutto funzionava perfettamente. Dammi solo il tempo di ritrovare i codici e vediamo se riusciamo a codificarli in asp.
    Per quanto riguarda il mio problema come hai notato, inserendo:

    MM_redirectLoginSuccess=MM_valUsername

    riesco a far aprire una pagina personale che ha lo stesso nome dell'username dell'utente che fa il login. Attenzione la pagina deve essere salvata senza estensione altrimenti non funziona.
    Un piccolo difetto da risolvere è questo: la pagina personale si deve trovare nella stessa cartella dove c'è la pagina con il modulo del login. Ora se come nella maggior parte dei siti voglio mettere il login nella home page mi ritroverei (es: dopo 100 clienti iscritti) ad avere 100 file nella root principale e questo vorrei evitarlo.
    In java riuscii ad organizzare il tutto in questo modo (vedi immagine)
    C'era la pagina personale e poi la cartella personale

    Cmq quello che mi piacerebbe fare è:
    creare un database con 3 semplici campi:
    Utente - Password - link

    Ciao
    Immagini allegate Immagini allegate

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30

    Versione finale

    Ciao a tutti,
    continuo questa discussione per dare a tutti la possibilità di far funzionare una cosa molto utile.
    Nei precedenti post ci sono stati molti suggerimenti, tutti validi, ma vediamo come dobbiamo metterli insieme:

    1) Tutti i file delle pagine personali devono trovarsi nella stessa cartella della pagina dove c'è il modulo per fare il login

    2) Tutti gli user presenti nel database devono terminare con .asp
    es: utente1.asp - utente2.asp

    3) Attenzione che in locale può funzionare tutto anche senza estensione.

    Grazie a tutti, alla prossima by tonyweb

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.