Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38
  1. #1
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396

    Info su Session per carrello

    Ciao a tutti, ho creato una sessione Id che, una volta loggati, permette di visualizzare una div. Nella div è presente il link al pannello di controllo. Ho delle piccole delucidazioni da chiedervi ma prima posto il codice:

    invia_login.asp
    Codice PHP:
    <%
    dim sw_eof

    if request.form("username")="" or request.form("codice")="" then
    response
    .redirect "/default.asp?Id=1" 
    end if



    dim strUsername
    strUsername
    =replace(request.form("username"),"'","''")
    dim strCodice
    strCodice
    =replace(request.form("codice"),"'","''")
    dim strId
    strId
    =request("id")


    dim strCode
    strCode
    ="innovatel"
    dim intVolta
    intVolta
    ="0"

     
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn " DBQ=" Server.MapPath("/mdb/z21.mdb")
    strConn=strConn ";pwd=" strCode
    Conn
    .Open strConn

    Set rs 
    Server.CreateObject("ADODB.Recordset")

    sql "SELECT * FROM registrazione_utente where username = '" strUsername &"' AND codice = '"strCodice &"' "
    rs.Open sqlconn 

    if rs.eof then
    sw_eof
    ="1"
    end if

    if 
    sw_eof="1" then
    response
    .redirect "/default.asp?Id=2" 
    end if

    if 
    sw_eof="0" then
    response
    .redirect "/default.asp?Id=3" 
    end if

    if 
    not rs.eof then
    session
    ("loggato") = true
    session
    ("id") = id
    else
    session("loggato") = false

    end 
    if

    conn.close
    Set conn
    =Nothing




    Session
    ("loggato")= strId
    response
    .redirect "/default.asp" 

    default.asp
    Codice PHP:
    <%
    if 
    session ("loggato") = false AND session("id") = "" then
    %>
    <
    h2 class="categoria">My shop</h2>
    <
    ul class="ul-sx">
    <
    li class="li-sx">[img]immagini/pannello.png[/img][url="registrazione/pannello.asp"]Pannello di controllo[/url]

    <
    li class="li-sx">[img]immagini/carrello.png[/img][url="acquisti/carrello.asp"]Carrello[/url] (0)

    <
    li class="li-sx">[img]immagini/logout.png[/img][url="registrazione/logout.asp"]Logout[/url][/list]
    <%
    end if
    %> 
    pannello.asp
    Codice PHP:
    <%
    If 
    session("loggato") = "" AND session("id") = "" then
    response
    .redirect "/default.asp"
    else
    %>
    <!
    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <
    html>
    <
    head>
    <
    titlePannello di controllo</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </
    head>

    <
    body>
    <%
    dim strCode
    strCode
    ="innovatel"
    dim intVolta
    intVolta
    ="0"
     

    strId session("loggato")
       
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn " DBQ=" Server.MapPath("/z21.mdb")
    strConn=strConn ";pwd=" strCode

    Conn
    .Open strConn



    Set rs 
    Server.CreateObject("ADODB.Recordset")



    sql "SELECT * FROM registrazione_utente where id = '"Session("loggato") &"' "


    LINE39---> rs.Open sqlconn
    %>


     
    Ciao <%=rs("username")%></p>
    <%

    rs.Close
    set rs 
    Nothing
    conn
    .Close
    end 
    if
    set conn Nothing

    %>

    </
    body>
    </
    html
    Delucidazioni:

    - Quando provo ad effettuare il login, il login non riesce. La pagina che visualizzo è la default.asp senza la colonna MY SHOP.

    Precedentemente avevo questa situazione perfettamente funzionante:

    invia_login.asp
    Codice PHP:
    if not rs.eof then
    session
    ("loggato") = true
    session
    ("username") = username
    else
    session("loggato") = false

    end 
    if

    conn.close
    Set conn
    =Nothing




    Session
    ("loggato")= strUsername
    response
    .redirect "/default.asp" 
    pannello.asp
    Codice PHP:
    <%


    If 
    session("loggato") = "" and session("username") = ""  then
    response
    .redirect "default.asp"
     
    end if

    strUsername session("loggato")
       
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn " DBQ=" Server.MapPath("/z21.mdb")
    strConn=strConn ";pwd=" strCode
    Conn
    .Open strConn



    Set rs 
    Server.CreateObject("ADODB.Recordset")
    'rs.Open sql, conn ,3,3


    sql = "SELECT * FROM agenti where username = '"& Session("
    loggato") &"' "
    %>

    rs.Open sql, conn



    %>
    <h1> Benvenuto <% =rs ("nome") %></h1>
    .................... 
    Ogni singolo utente loggato riusciva a vedere i propri dati. Ho creato una relazione semplice tra questi 3 db:

    registrazione_utente:

    id CONTATORE
    username TESTO
    codice TESTO

    carrello:

    id_user NUMERICO
    id_prodotto NUMERICO
    quantita NUMERICO

    nuovi_prodotti:

    id CONTATORE
    marca TESTO
    descrizione TESTO
    prezzo VALUTA

    Domandina: Potete aiutarmi a capire come salvare l'ID dell'utente nella session, e passarli da una pagina e l'altra? Forse la risposta è semplice ed è sotto ai miei occhi, ma sono del tutto cotto! VVoVe:

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ti è sufficiente una sola session. Visto che ti serve l'id allora:

    codice:
    session("id") = rs("id")
    Poi recupera solo quella.

    Roby

  3. #3
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Se inserisco solo la session che mi hai postato una volta fatto il login mi ridà questo errore:

    Codice PHP:
    Tipo di errore:
    ADODB.Recordset (0x800A0CC1)
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
    /
    registrazione/invia_login.aspline 61 
    invia_login.asp

    Codice PHP:
    <%



    dim sw_eof

    if request.form("username")="" or request.form("codice")="" then
    response
    .redirect "/default.asp?Id=1" 
    end if



    dim strUsername
    strUsername
    =replace(request.form("username"),"'","''")
    dim strCodice
    strCodice
    =replace(request.form("codice"),"'","''")
    dim strId
    strId 
    request("id")


    dim strCode
    strCode
    ="innovatel"
    dim intVolta
    intVolta
    ="0"

     
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn " DBQ=" Server.MapPath("/mdb/z21.mdb")
    strConn=strConn ";pwd=" strCode
    Conn
    .Open strConn

    Set rs 
    Server.CreateObject("ADODB.Recordset")

    sql "SELECT * FROM registrazione_utente where username = '" strUsername &"' AND codice = '"strCodice &"'    "
    rs.Open sqlconn 

    if rs.eof then
    sw_eof
    ="1"
    end if

    if 
    sw_eof="1" then
    response
    .redirect "/z21/default.asp?Id=2" 
    end if

    if 
    sw_eof="0" then
    response
    .redirect "/default.asp?Id=3" 
    end if







    conn.close
    Set conn
    =Nothing




    Session
    ("id") = rs("id")
    response.redirect "/default.asp"

    %> 

  4. #4

    ..

    hai messo la richiesta del recorset dopo la chiusura della connessione..


    Rispetta le nidificazione

    apro connessione
    apro recorset

    chiudo recorset
    distruggo recorset

    chiudo connessione
    distruggo connessione
    Per il vostro piacere di navigare
    nuovemodelle.com
    Quando cominceranno a capirmi mi avranno già programmato...

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ragiona, non devi fare più il controllo tramite la username!
    Devi usare solo l'ID. A meno che non ti servano entrambi.

    Roby

  6. #6
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Grazie a tutti per la pazienza. Ho avuto una svista e ho piazzato la session dopo la chiusura del db. Ho modificato il file, ho lasciato solo i controlli per ID (anche se potrebbe farmi comodo un controllo per username e id) ma niente, il login non avviene

    Codice PHP:
    <%

    dim strId
    strId 
    request("Id")


    dim sw_eof

    if request("id")=""  then
    response
    .redirect "/z21/default.asp?Id=1" 
    end if



    dim strCode
    strCode
    ="innovatel"
    dim intVolta
    intVolta
    ="0"

     
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn " DBQ=" Server.MapPath("/z21/mdb/z21.mdb")
    strConn=strConn ";pwd=" strCode
    Conn
    .Open strConn

    Set rs 
    Server.CreateObject("ADODB.Recordset")

    sql "SELECT * FROM registrazione_utente where id = '" strId &"'  "
    rs.Open sqlconn 

    if rs.eof then
    sw_eof
    ="1"
    end if

    if 
    sw_eof="1" then
    response
    .redirect "/z21/default.asp?Id=2" 
    end if

    if 
    sw_eof="0" then
    response
    .redirect "/z21/default.asp?Id=3" 
    end if





    Session("id") = rs("id")
    response.redirect "/z21/default.asp"


    conn.close
    Set conn
    =Nothing




    %> 
    Potreste scrivermi l'errore pls?

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Allora, il login si fa con user e password.
    E quelle devi continuare a controllarle... hai tolto tutto!
    Se user e password vanno bene recuperi l'ID del record corrispondente, lo assegni ad una session ed in cima a tutte le pagine protette verifichi che sia valorizzata.

    Roby

  8. #8
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Ok, sto tornando in me piano piano . Così funziona:
    Codice PHP:
    <%
    dim sw_eof


    if request.form("username")="" or request.form("codice")="" then
    response
    .redirect "default.asp?Id=1" 
    end if





    dim strUsername
    strUsername
    =replace(request.form("username"),"'","''")
    dim strCodice
    strCodice
    =replace(request.form("codice"),"'","''")


    dim strCode
    strCode
    ="innovatel"
    dim intVolta
    intVolta
    ="0"

     
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn " DBQ=" Server.MapPath("/mdb/z21.mdb")
    strConn=strConn ";pwd=" strCode
    Conn
    .Open strConn

    Set rs 
    Server.CreateObject("ADODB.Recordset")

    sql "SELECT * FROM registrazione_utente where username = '" strUsername &"' AND codice = '"strCodice &"'"
    rs.Open sqlconn 

    if rs.eof then
    sw_eof
    ="1"
    end if

    if 
    sw_eof="1" then
    response
    .redirect "/default.asp?Id=2" 
    end if



    if 
    not rs.eof then
    session
    ("loggato") = true
    session
    ("id") = id
    else
    session("loggato") = false

    end 
    if

    Session("id") = rs("id")
    response.redirect "/default.asp"

    conn.close
    Set conn
    =Nothing

    %> 
    cioè setta l'id nella session e riesco a loggarmi. Un ultima cosa e non vi stresso più (per adesso..) nella pagina pannello.asp ho questo codice che ovviamente restituisce un errore
    e sicuramente l'errore è nella query al db e forse non solo li. Potreste scrivermi in termine di codice cosa andare a cambiare? grazie mille
    pannello.asp
    Codice PHP:
    <%
    If 
    session("loggato") = "" and session("id") = ""  then
    response
    .redirect "/default.asp"
    end if
    %>
    <!
    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <
    html>
    <
    head>
    <
    title>Z21 Pannello di controllo</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </
    head>

    <
    body>
    <%
    dim strCode
    strCode
    ="innovatel"
    dim intVolta
    intVolta
    ="0"
     

    strId session("id")
       
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn " DBQ=" Server.MapPath("/mdb/z21.mdb")
    strConn=strConn ";pwd=" strCode

    Conn
    .Open strConn



    Set rs 
    Server.CreateObject("ADODB.Recordset")



    sql "SELECT * FROM registrazione_utente where id = '"Session("id") &"' "


    LINE 39--->rs.Open sqlconn
    %>


     
    Ciao <%=rs("username")%></p>
    <%

    rs.Close

    set rs 
    Nothing
    conn
    .Close

    set conn 
    Nothing

    %>

    </
    body>
    </
    html
    errore

    Codice PHP:
    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
    [
    Microsoft][Driver ODBC Microsoft AccessTipi di dati non corrispondenti nell'espressione criterio.
    /pannello.asp, line 39 

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    sql = "SELECT * FROM registrazione_utente where id = "& strId
    Roby

  10. #10
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Grazie Roby, ora funziona!

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.