Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: script di controllo

  1. #1
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304

    script di controllo

    Ciao a tutti!
    sto facendo un sito per imparare ad usare asp, ed ho alcune difficoltà. Scegliendo a caso - - ve ne espongo una. Gli utenti del mio sito possono loggarsi, inserire annunci ed eventualmente eliminarli. Per fare questo, ho aperto una sessione e controllo, dove mi serve, che l'utente sia loggato col seguente codice all'inizio della pagina:

    <% if session("loggato") = "" then
    response.redirect("registrazione.asp?ERRORE=Non sei autorizzato o la tua sessione è scaduta")
    else %>

    Cioè, se l'utente è loggato stampo la pagina, altrimenti lo rimando alla registrazione o login. Questo avviene nelle pagine che vengono, durante la navigazione, solo dopo aver già effettuato l'accesso alla pagina riservata privati.asp
    Per entrare in privati.asp, dalla quale effettuare varie operazioni, bisogna loggarsi nella home. In privati.asp ho incluso uno script di controllo, ossia:

    <%
    dim username, password, invia
    username = request.form ("username")
    password = request.form ("password")
    invia = request.form ("invia")


    if invia <> "" then --> controllo user e pass che l'utente inserisce per loggarsi
    sqlControllo = "SELECT id,username, password, nome, cognome FROM Inserzionisti "
    sqlControllo = sqlControllo & "WHERE username='"&username&"' and password='"&password&"' "

    set rsControllo = objConn.execute (sqlControllo)
    if rsControllo.eof <> true then
    msgBenvenuto = rsControllo("nome") & " " & rsControllo("cognome")
    dim idUtente
    idUtente = rsControllo("id")
    session("loggato") = idUtente

    else
    response.redirect("registrazione.asp")
    end if
    else
    if session("loggato") = "" then
    response.redirect("registrazione.asp?ERRORE=Non sei autorizzato o la tua sessione è scaduta")
    else
    response.redirect("ERRORE")
    end if
    end if
    %>

    PROBLEMA: ritornando da alcune pagine a privati.asp, in cui è incluso tale script, mi esegue il response.redirect("ERRORE"), una delle ultime opzioni dello script. Ad esempio, mi ritrovo nella pagina in cui confermo l'inserimento di una news, che ha un redirect a privati.asp, e qui mi genera quell'azione..
    Immagino dipenda da come ho strutturato lo script..
    spero che quello che vi ho detto sia sufficiente a capire l'errore..

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Nessuna pagina dovrebbe avere il redirect a "privati.asp".
    In questa pagina devi andarci SOLO dopo aver compilato il form con user e password e mai più.

    Roby

  3. #3
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    avevo immaginato che con questo script di controllo non posso fare altrimenti..
    ma se voglio far tornare l'utente alla pagina privati.asp per fargli effettuare altre operazioni, come faccio?
    devo farlo riloggare ogni volta?

  4. #4
    cos'altro fa privati.asp, oltre al login?

  5. #5
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    Ho solo dei links per inserire/cancellare news e annunci di vario tipo...

    Supponiamo che includessi lo script di controllo in una pagina intermedia, controllo.asp, questa col redirect a privati.asp, e che in privati.asp inserissi solo il codice:

    <%
    if session("loggato") = "" then
    response.redirect("registrazione.asp")
    else
    %>

    Così funzionerebbe forse..?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ecco così andrebbe meglio.
    Semplifica il codice di controllo delle tue pagine così:

    codice:
    <% 
    if session("loggato") = "" then response.redirect("registrazione.asp") 
    %>
    Non serve altro.

    Roby

  7. #7
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    grazie roby, ma non funge..
    esegue sempre l'ultima parte dello script di controllo, il

    response.redirect("ERRORE")

    Forse perchè una volta loggato, la session ha un valore. Quando torno in privati.asp, essendo già loggato e la session attiva, l'unica cosa che lo script può eseguire è quel redirect..

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Abbiamo detto che in privati non devi tornarci dopo aver autenticato l'utente.

    Roby

  9. #9
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    provando con quella soluzione della pagina intermedia funziona!!!
    Grazie a voi - o per colpa vostra, vi dirò in futuro - sto imparando molte cose..
    Grazie!!!

  10. #10
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    Posso chiedervi un'altra cosa?
    Ho dovuto fare delle query per selezionare campi da due tabelle incrociate, ed ho dovuto creare delle relazioni tra le tabelle..
    Lavorando su queste pagine, adesso però non funziona più bene il login e la registrazione - in precedenza funzionanti - non so perchè..
    Innanzitutto non riceve più i dati di una nuova registrazione, da questo errore:

    Microsoft JET Database Engine error '80040e14'

    Errore di sintassi nell'istruzione INSERT INTO.

    /Sito_Immo/iscritto.asp, line 34

    la query è:

    sqlIscrizione = "INSERT INTO Inserzionisti"
    sqlIscrizione = sqlIscrizione & "(nome,cognome,indirizzo,citta,provincia,cap,telef ono,mail,"
    sqlIscrizione = sqlIscrizione & "username,password,newsletter,agenzia,fax)"
    sqlIscrizione = sqlIscrizione & "VALUES('"&nome&"','"&cognome&"','"&indirizzo&"',' "&citta&"',"
    sqlIscrizione = sqlIscrizione & "'"&provincia&"','"&cap&"','"&telefono&"','"&mail& "','"&username&"',"
    sqlIscrizione = sqlIscrizione & "'"&password&"','"&newsletter&"','"&agenzia&"','"& fax&"')"

    objConn.execute (sqlIscrizione) ----------------------------------> LINEA 34

    è incluso in questa pagina un file di apertura della connessione col db, il cui codice è:

    <%
    dim objConn, strConn
    set objConn = server.createobject("Adodb.Connection")
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath ("db/immodb.mdb")
    objConn.open strConn
    %>

    Ho controllato e la posizione dei campi della query e del db corrisponde, quindi non so a cosa attribuire l'errore...
    Può essere che, avendo creato le relazioni fra tabelle in un momento successivo la compilazione di questi script, vengano generati dei problemi?
    Ho notato anche una cosa:
    Usando firefox il primo utente registrato, con ID = 1, non può loggarsi perchè non viene riconosciuto..con gli altri questo problema non c'è..
    Usando Explorer non ci si può loggare proprio..

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 © 2025 vBulletin Solutions, Inc. All rights reserved.