Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465

    aggiunta del where su comando sql

    salve a tutti scusate ma e' una cavolata pero' non ne riesco ad uscire,
    ho necessita' di passare un valore in record specifico della tabella
    accessi sono arrivato alla fine ma manca solo il where che non
    riesco a far funzionare.

    questa e' una pagina che ha una form per accedere con userid e pwd
    nel momento in cui l'utente entra si deve memorizzare il
    valore si nella colonna online, lo fa' ma su tutti i record
    io invece vorrei che mi inserisse il valore solo nell'utente che
    si logga, vi metto in rosso il codice che ho aggiunto:


    questo e' il codice:

    [CODE<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <%
    Dim Recordset1
    Dim Recordset1_numRows

    Set Recordset1 = Server.CreateObject("ADODB.Recordset")
    Recordset1.ActiveConnection = MM_connarchivioweb_STRING
    Recordset1.Source = "SELECT * FROM accessi"
    Recordset1.CursorType = 0
    Recordset1.CursorLocation = 2
    Recordset1.LockType = 1
    Recordset1.Open()

    Recordset1_numRows = 0
    %>
    <%
    ' *** 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("textfield"))
    If MM_valUsername <> "" Then
    MM_fldUserAuthorization=""
    MM_redirectLoginSuccess="vedischede.asp"
    MM_redirectLoginFailed="prova.asp"
    MM_flag="ADODB.Recordset"
    set MM_rsUser = Server.CreateObject(MM_flag)
    MM_rsUser.ActiveConnection = MM_connarchivioweb_STRING
    MM_rsUser.Source = "SELECT utenti, password"
    If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
    MM_rsUser.Source = MM_rsUser.Source & " FROM accessi WHERE utenti='" & Replace(MM_valUsername,"'","''") &"' AND password='" & Replace(Request.Form("textfield2"),"'","''") & "'"
    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
    sql="update accessi set online = 'si';"
    MM_rsUser.ActiveConnection.execute(sql)

    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
    'SELECT surname FROM Person
    Response.Redirect(MM_redirectLoginSuccess)
    End If
    MM_rsUser.Close
    Response.Redirect(MM_redirectLoginFailed)
    End If
    %>
    <html>
    <head>
    <title>Documento senza titolo</title>
    <mta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <form name="form1" method="POST" action="<%=MM_LoginAction%>">

    <input type="text" name="textfield">
    <input type="text" name="textfield2">
    <input type="submit" name="Submit" value="Invia">
    </form>
    </body>
    </html>
    <%
    Recordset1.Close()
    Set Recordset1 = Nothing
    %>
    [/CODE]

    deve riuscire a captare l'utente che entra allora mi e' venuta tipo un idea pero' non funziona:

    codice:
    sql="update accessi set online = 'si' WHERE id = 'MM_Username';"


    che ne dite?

  2. #2
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465
    ho provato anche con:

    codice:
    sql="update accessi set online = 'si' WHERE utenti = 'roberto';"
          MM_rsUser.ActiveConnection.execute(sql)
    cosi' il valore me lo scrive nel record dell'utente roberto,
    allora penso che per far rlevare l'utente che entra basta che
    metto la variabile che richiama la sessione dell'utente giusto?

    e dovrebbe esser cosi:

    codice:
    sql="update accessi set online = 'si' WHERE utenti = 'MM_valUsername';"
          MM_rsUser.ActiveConnection.execute(sql)

    ma non e'

  3. #3
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465


    riguardando il codice sopra...
    forse così:

    codice:
    sql="update accessi set online = 'si' WHERE utenti = Session("MM_Username");"


    non funzionaa

  4. #4
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465
    alla fine ci sono riuscito!!!

    questa e' la stringa corretta:

    codice:
    sql="update accessi set online = 'si' WHERE utenti ='" & Session("MM_username")&"'"


    bene, ora pero' lo stavo testando nel tasto di log-out per mettere il valore a no.
    Pero' mi da' un problema sulla stringa di connessione al db e come
    errore mi restituisce:

    codice:
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01A8)
    Necessario oggetto:
    sto impazzendo l'oggetto comunque e' dichiarato nella pagina in fondo!

    vi posto il codice e vi segnalo in rosso i riferimenti:

    codice:
    
    <%
    ' *** Logout the current user.
    MM_Logout = CStr(Request.ServerVariables("URL")) & "?MM_Logoutnow=1"
    sql="update accessi set online = 'no' WHERE utenti ='" & Session("MM_username")&"'" 
    MM_editCmd.ActiveConnection.execute(sql)
    If (CStr(Request("MM_Logoutnow")) = "1") Then
      Session.Contents.Remove("MM_Username")
      Session.Contents.Remove("MM_UserAuthorization")
      MM_logoutRedirectPage = "default.asp"
      ' redirect with URL parameters (remove the "MM_Logoutnow" query param).
      if (MM_logoutRedirectPage = "") Then MM_logoutRedirectPage = CStr(Request.ServerVariables("URL"))
      If (InStr(1, UC_redirectPage, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
        MM_newQS = "?"
        For Each Item In Request.QueryString
          If (Item <> "MM_Logoutnow") Then
            If (Len(MM_newQS) > 1) Then MM_newQS = MM_newQS & "&"
            MM_newQS = MM_newQS & Item & "=" & Server.URLencode(Request.QueryString(Item))
          End If
        Next
        if (Len(MM_newQS) > 1) Then MM_logoutRedirectPage = MM_logoutRedirectPage & MM_newQS
      End If
      Response.Redirect(MM_logoutRedirectPage)
    End If
    %>
    <%
    ' *** Edit Operations: declare variables
    
    Dim MM_editAction
    Dim MM_abortEdit
    Dim MM_editQuery
    Dim MM_editCmd
    
    Dim MM_editConnection
    Dim MM_editTable
    Dim MM_editRedirectUrl
    Dim MM_editColumn
    Dim MM_recordId
    
    Dim MM_fieldsStr
    Dim MM_columnsStr
    Dim MM_fields
    Dim MM_columns
    Dim MM_typeArray
    Dim MM_formVal
    Dim MM_delim
    Dim MM_altVal
    Dim MM_emptyVal
    Dim MM_i
    
    MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
    If (Request.QueryString <> "") Then
      MM_editAction = MM_editAction & "?" & Request.QueryString
    End If
    
    ' boolean to abort record edit
    MM_abortEdit = false
    
    ' query string to execute
    MM_editQuery = ""
    %>
    <%
    ' *** Update Record: set variables
    
    If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then
    
      MM_editConnection = MM_connarchivioweb_STRING
      MM_editTable = "archivio"
      MM_editColumn = "id_img"
      MM_recordId = "" + Request.Form("MM_recordId") + ""
      MM_editRedirectUrl = "vedischede.asp"
      MM_fieldsStr  = "autore|value|opera|value|secolo|value|data|value|luogo|value|abstract|value|cliente|value|esecuzione|value|contenitore|value|formato|value|tipo|value|pubblicazione|value|completata|value|approvazione|value|online|value|utente|value"
      MM_columnsStr = "autore|',none,''|opera|',none,''|secolo|',none,''|data|',none,''|luogo|',none,''|abstract|',none,''|cliente|',none,''|esecuzione|',none,''|contenitore|',none,''|formato|',none,''|tipo|',none,''|pubblicazione|',none,''|completata|',none,''|approvazione|',none,''|online|',none,''|utente|',none,''"
    
      ' create the MM_fields and MM_columns arrays
      MM_fields = Split(MM_fieldsStr, "|")
      MM_columns = Split(MM_columnsStr, "|")
      
      ' set the form values
      For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
        MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
      Next
    
      ' append the query string to the redirect URL
      If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
        If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
          MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
        Else
          MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
        End If
      End If
    
    End If
    %>
    <%
    ' *** Update Record: construct a sql update statement and execute it
    
    If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then
    
      ' create the sql update statement
      MM_editQuery = "update " & MM_editTable & " set "
      For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
        MM_formVal = MM_fields(MM_i+1)
        MM_typeArray = Split(MM_columns(MM_i+1),",")
        MM_delim = MM_typeArray(0)
        If (MM_delim = "none") Then MM_delim = ""
        MM_altVal = MM_typeArray(1)
        If (MM_altVal = "none") Then MM_altVal = ""
        MM_emptyVal = MM_typeArray(2)
        If (MM_emptyVal = "none") Then MM_emptyVal = ""
        If (MM_formVal = "") Then
          MM_formVal = MM_emptyVal
        Else
          If (MM_altVal <> "") Then
            MM_formVal = MM_altVal
          ElseIf (MM_delim = "'") Then  ' escape quotes
            MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
          Else
            MM_formVal = MM_delim + MM_formVal + MM_delim
          End If
        End If
        If (MM_i <> LBound(MM_fields)) Then
          MM_editQuery = MM_editQuery & ","
        End If
        MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
      Next
      MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId
    
      If (Not MM_abortEdit) Then
        ' execute the update
        Set MM_editCmd = Server.CreateObject("ADODB.Command")
        MM_editCmd.ActiveConnection = MM_editConnection 
        MM_editCmd.CommandText = MM_editQuery
        MM_editCmd.Execute
        MM_editCmd.ActiveConnection.Close
    
        If (MM_editRedirectUrl <> "") Then
          Response.Redirect(MM_editRedirectUrl)
        End If
      End If
    
    End If
    %>
    mi sapete dir qualcosa?

  5. #5
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465
    si puo' far eseguire il comando Execute
    senza farlo appogiare ad una connessione?

  6. #6
    Originariamente inviato da naps
    si puo' far eseguire il comando Execute
    senza farlo appogiare ad una connessione?
    a cosa vorresti farlo 'appoggiare'?

  7. #7
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465
    giusto..

    pero' perche' non mi accetta la varibile come sopra?

    codice:
    MM_editCmd.ActiveConnection.execute(sql)

    e mi da errore:

    codice:
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01A8)
    Necessario oggetto:

    :rollo:

  8. #8
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465
    potrei aggiungere una connessioner personalizzata
    oppure mi restituira' erroe perche gia ce' il riferimento a:



  9. #9
    Utente di HTML.it L'avatar di naps
    Registrato dal
    May 2001
    Messaggi
    465
    devo creare una connessione nuova per sql oltre a quella esistente?


  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ci spieghi a grandi linee il "problema connessione"?

    Roby

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.