• User Attivo

    [ASP] Forum di Clotz...errori...

    Ciao a tutti volendo aggiungere ad un sito un forum non molto complesso ho dato un'occhiata in giro per scovare qualche script già pronto (dato che ne capisco poco) e ho trovato il forum di Clotz che per un uso modesto va benissimo il link è questo:

    http://www.webmasterpoint.org/script/ASP/download_script_componenti/Forum/128/Forum.html

    l'ho provato ma ho notato che presenta dei bug ad esempio, quando si risponde ad una discussione e successivamente si risponde nuovamente, cliccando su link "Elenco argomenti" esce fuori questo errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'IDCategoria ='.

    /forum4/forumclotz/selarg01.asp, line 7
    ripeto non essendo un esperto ho guardato il file selarg01.asp ma sembra apposto.
    Qualcuno di voi avrebbe la pazienza di provarlo e dirmi dove stà l'errore ?

    Grazie !
    p.s.
    Io ho trovato questo script ma se qualcuno potrebbe consigliarmi qualche altro funzionante simile a questo mi farebbe cosa gradita (ho pure provato il snitz forum ma troppo complicato per le mi esigenze)


  • Moderatore

    probabilmente manca un AND oppure un OR prima di IDCategoria

    immagino che la query sia
    "INSERT INTO .... () VALUES()..... WHERE ..... AND IDCategoria=........"

    Ciao
    :ciauz:


  • User Attivo

    Sul file selarg01.asp al numero di riga incriminato è scritto così

    strSQL="SELECT * FROM QArgomento WHERE IDCategoria = " & request.querystring("ID") & " ORDER BY Data Desc":?


  • Moderatore

    probabilmente request.querystring("ID") è vuoto
    magari fai un controllo prima di eseguire la query

    tipo:

    
    if isnumeric(trim(request.querystring("ID") )) Then
        'esegui query
    else
        'messaggio di errore
    end if
    
    ```Ciao
    :ciauz:

  • User Attivo

    Forse ti ho postato poco...ti invio qualche riga in +

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

    strSQL="SELECT * FROM QArgomento WHERE IDCategoria = " & request.querystring("ID") & " ORDER BY Data Desc"
    rs.Open strSQL,cn
    Set objID=rs("ID")
    Set objArgomento=rs("Argomento")
    Set objData=rs("Data")
    Set objNick=rs("Nick")
    Set objnRisp=rs("nRisp")
    if rs.EOF then
    response.write("<h3>Spiacente, non e' stata fatta nessuna richiesta per questo argomento.</h3>")
    else
    dim pari 'booleano per identificare se siamo in una riga pari o in una dispari
    pari = false
    %>


  • Moderatore

    hai provato ad inserire il codice che ti ho scritto?


  • User Attivo

    Non so in quale posizione devo inserirlo !
    😞


  • Moderatore

    prima di questa riga

    strSQL="SELECT * FROM QArgomento WHERE IDCategoria = " & request.querystring("ID") & " ORDER BY Data Desc"


  • User Attivo

    Ho provato....continua a darmi l'errore


  • Moderatore

    mi sono espresso male io,

    il codice che effettua la query lo devi inserire all'interno come ti ho scritto nell'esempio:

    if isnumeric(trim(request.querystring("ID") )) Then
    'esegui query
    'QUI CI VA IL CODICE

    else
    'eventuale messaggio di errore
    end if


  • User Attivo

    Ho provato Legolas ad inserire il codice da te fornitomi solo che mi dà un'altro errore:> Microsoft VBScript compilation error '800a03f6'
    Expected 'End'
    /forum3/arg01.asp, line 21

    dove andando a vedere il file arg01 alla linea 21
    ho quest'altro codice:

    <form>
    <br><input type="button" class="corpo" onClick="location.href='argins.asp?ID=<%=request.querystring("ID")%>';" value="Nuovo Argomento" title="Inserisci un nuovo argomento"> 
    </form>
    :arrabbiato:


  • Moderatore

    bhe l'errore te lo da perchè si aspetta di trovare un end if

    il codice ce ti ho dato lo devi adattare alle tue esigenze.


  • User Attivo

    Legolas io ho scritto così:

    <%
    ID = request.queryString("ID")

    if len(ID) > 0 and isNumeric(ID) then
    Set rs = Server.CreateObject("ADODB.Recordset")
    if isnumeric(trim(request.querystring("ID") )) Then
    'esegui query

    strSQL="SELECT * FROM QArgomento WHERE IDCategoria = " & ID & " ORDER BY Data Desc"
    rs.Open strSQL,cn
    objID = rs("ID")
    objArgomento = rs("Argomento")
    objData = rs("Data")
    objNick = rs("Nick")
    objnRisp = rs("nRisp")
        if rs.EOF then 
            response.write("<h3>Spiacente, non e' stata fatta nessuna richiesta per questo argomento.</h3>")
        else
            dim pari 'booleano per identificare se siamo in una riga pari o in una dispari
        pari = false
    end if
    

    %>

    non ho messo :

    else
    'eventuale messaggio di errore

    perchè vi era già

    Dimmi solo se va bene :ciauz:


  • User Attivo

    :mmm:


  • Moderatore

    <%
    ID = request.queryString("ID")

    if len(ID) > 0 and isNumeric(ID) then
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL="SELECT * FROM QArgomento WHERE IDCategoria = " & ID & " ORDER BY Data Desc"
    rs.Open strSQL,cn
    objID = rs("ID")
    objArgomento = rs("Argomento")
    objData = rs("Data")
    objNick = rs("Nick")
    objnRisp = rs("nRisp")
    if rs.EOF then
    response.write("<h3>Spiacente, non e' stata fatta nessuna richiesta per questo argomento.</h3>")
    else
    dim pari 'booleano per identificare se siamo in una riga pari o in una dispari
    pari = false
    end if
    End If
    %>


  • User Attivo

    Continua a darmi errore alla linea 58 cioè questo:

    Microsoft VBScript compilation  error '800a0400' 
     Expected statement 
     /forum3/selarg01.asp, line 58 
    end if
    ^
    

    Questa è la pag selarg01.asp

    <%
    Set cn = Server.CreateObject("ADODB.Connection")
    %>
    <!--#include file="frmOpencn.asp"-->
    <%
    ID = request.queryString("ID")
    
    if len(ID) > 0 and isNumeric(ID) then
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL="SELECT * FROM QArgomento WHERE IDCategoria = " & ID & " ORDER BY Data Desc"
    rs.Open strSQL,cn
    objID = rs("ID")
    objArgomento = rs("Argomento")
    objData = rs("Data")
    objNick = rs("Nick")
    objnRisp = rs("nRisp")
    if rs.EOF then
    response.write("<h3>Spiacente, non e' stata fatta nessuna richiesta per questo argomento.</h3>")
    else
    dim pari 'booleano per identificare se siamo in una riga pari o in una dispari
    pari = false
    end if
    End If
    %>
        <table width="100%" cellpadding="1">
            <tr align="left">
                <td class="Testata"> Messaggio</td>
                <td class="Testata" align="center">Proposto da</td>
                <td class="Testata" align="center"><font size="-1"> Ultimo<br>aggiornamento</font></td>
                <td class="Testata" align="center"><font size="-1">N° Risposte</font></td> 
            </tr>
        <% 
            Do Until rs.EOF 
                if pari then
        %> 
                <tr class="rigapari">
        <%
                else
        %>
                <tr class="rigadispari">
        <%
                end if
        %>
                <td> <a href="msg01.asp?catID=<%=request.querystring("ID")%>&ID=<%=objID%>&argomento=<%=replace(objArgomento," ","%20")%>"><%=objArgomento%></a></td>
                <td align="center"><%=objNick%></td>
                <td align="center"><%= objData%></td>
                <td align="center"><%= objnRisp-1%></td> 
            </tr>
        
        <% 
        pari = not pari ' inverto il valore della variabile booleana
        
        rs.movenext 
        loop
        %>
        </table>
        <% 
            end if 
        rs.close
        Set rs = nothing
    else
        response.write("<h3>Spiacente, non e' stato specificato un parametro valido.</h3>")
    end if
    cn.close
    Set cn = nothing
    %>
    

    :mmm:


  • Moderatore
    
    <%
    Set cn = Server.CreateObject("ADODB.Connection")
    %>
    <!--#include file="frmOpencn.asp"-->
    <%
    ID = request.queryString("ID")
    
    if len(ID) > 0 and isNumeric(ID) then
        Set rs = Server.CreateObject("ADODB.Recordset")
        strSQL="SELECT * FROM QArgomento WHERE IDCategoria = " & ID & " ORDER BY Data Desc"
        rs.Open strSQL,cn
        objID = rs("ID")
        objArgomento = rs("Argomento")
        objData = rs("Data")
        objNick = rs("Nick")
        objnRisp = rs("nRisp")
        if rs.EOF then
            response.write("<h3>Spiacente, non e' stata fatta nessuna richiesta per questo argomento.</h3>")
        else
            dim pari 'booleano per identificare se siamo in una riga pari o in una dispari
            pari = false
    %>
        <table width="100%" cellpadding="1">
            <tr align="left">
                <td class="Testata"> Messaggio</td>
                <td class="Testata" align="center">Proposto da</td>
                <td class="Testata" align="center"><font size="-1"> Ultimo<br>aggiornamento</font></td>
                <td class="Testata" align="center"><font size="-1">N° Risposte</font></td> 
            </tr>
    <% 
        Do Until rs.EOF 
            if pari then
    %> 
            <tr class="rigapari">
    <%
            else
    %>
            <tr class="rigadispari">
    <%
            end if
    %>
                <td> <a href="msg01.asp?catID=<%=request.querystring("ID")%>&ID=<%=objID%>&argomento=<%=replace(objArgomento,"20")%>"><%=objArgomento%></a></td>
                <td align="center"><%=objNick%></td>
                <td align="center"><%= objData%></td>
                <td align="center"><%= objnRisp-1%></td> 
            </tr>
        
    <% 
            pari = not pari ' inverto il valore della variabile booleana
        
            rs.movenext 
        loop
    %>
        </table>
    <% 
        end if 
        rs.close
        Set rs = nothing
    else
        response.write("<h3>Spiacente, non e' stato specificato un parametro valido.</h3>")
    end if
    cn.close
    Set cn = nothing
    %>
    
    

    :ciauz:


  • User Attivo

    Mi dà ancora errore questa volta qui:

    <td> <a href="msg01.asp?catID=<%=request.querystring("ID")%>&ID=<%=objID%>&argomento=<%=replace(objArgomento,"20")%>"><%=objArgomento%></a></td>
                <td align="center"><%=objNick%></td>
                <td align="center"><%= objData%></td>
                <td align="center"><%= objnRisp-1%></td> 
            </tr>
    

  • User Attivo

    :arrabbiato:


  • Moderatore

    replace(objArgomento,"20")

    la funzione replace vuole tre parametri obbligatori:

    i parametri indicati tra parentesi sono opzionali
    Replace(stringa, trova, sostituisci, (inizio), (conta), (tipoConfronto))