Avatar billede caf Nybegynder
22. januar 2007 - 17:17 Der er 46 kommentarer og
1 løsning

Er der en der kan fortælle mig hvorfor dette ikke virker?

Hej
Jeg forsøger at lave et kommentar system til min blog og det ser også fint ud. Men man kan ikke sende kommentaren, prøv selv på www.catarinas.dk

Min php ser således ud:

<%
if request.QueryString("Action") = "Sendt" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("min_database.mdb")
Conn.Open DSN

strSQL = "INSERT INTO kommentar (blogid, navn, besked) Values ('" & request.QueryString("id") & "', '" & request.Form("Navn") & "', '" & request.Form("Tekst") & "')"

Set rs = Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
end if
%>

<font size="2">
<div id="menu1" class="menu" onclick="event.cancelBubble=true">

<a href="#" onclick="var st=document.getElementById('showAnswer1').style;st.display=st.display!='block'?'block':'none';return false;">&raquo; Skriv en kommentar &laquo;</a><br>
<div id="showAnswer1" style="display:none;">&nbsp;&nbsp;&nbsp;&nbsp;

<form action="blog.asp?id=<%= request.QueryString("id")%>&Action="Sendt" method="post">
Dit navn:<br><input type="Tekst" name="navn"><br>
Din kommentar:<br><textarea name="Tekst" id="Tekst" style="width:90%; height:100px"></textarea><br>
<input type="submit" value="Send">
</form>

Mvh Caf
Avatar billede caf Nybegynder
22. januar 2007 - 17:18 #1
php=asp
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:21 #2
Din id indeholder ikke noget... Så den ser sådan her ud:
<form action="blog.asp?id=&Action="Sendt" method="post">
i browseren.. Tror du ikke du skal bruge noget ala rs("id") i stedet?
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:25 #3
Hvordan udskriver du dine blogs?
Avatar billede caf Nybegynder
22. januar 2007 - 17:25 #4
altså sådan?
<form action="RS("id")=<%= request.QueryString("id")%>&Action="Sendt" method="post">
Avatar billede caf Nybegynder
22. januar 2007 - 17:28 #5
Sådan:
<%
    Session.LCID = 1030
    %>   

    <%
        Set Conn = Server.CreateObject("ADODB.Connection")
        DataSource = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("min_blog.mdb") & " ;"
        Conn.Open DataSource
    SQL_blog = "SELECT TOP 30 * FROM blog ORDER BY id DESC"
    Set RS = Conn.Execute(SQL_blog)
        IF RS.EOF THEN
        Response.Write "der er ingen data"
        ELSE
    WHILE NOT RS.EOF
    Dim strblog
    strblog=rs("indhold")
    if strblog <> "" then
    strblog=Replace(strblog,vbCrLf,"<br/>")
    else
    strblog = ""
    end if
    %>
    <h4><%=RS("overskrift")%></h4><%=RS("billede")%>
    <FONT SIZE="1"><%=RS("dato")%>&nbsp;&nbsp;<%=RS("forfatter")%></font>
    <br><br>
    <%=strblog%>
    <br>
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:29 #6
Nej sådan her:
<form action="blog.asp?id=<%=RS("id")%>&Action="Sendt" method="post">

Hvis altså dit recordset hedder RS..
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:30 #7
Og det gør det :0 Så det skulle virke ;)
Avatar billede caf Nybegynder
22. januar 2007 - 17:41 #8
Det virker stadig ikke :-(
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:43 #9
Kunne man få lov til at se hele koden til den fil der udskriver bloggen??
Avatar billede caf Nybegynder
22. januar 2007 - 17:46 #10
Værsågod :-)

<%
    Session.LCID = 1030
    %>   

    <%
        Set Conn = Server.CreateObject("ADODB.Connection")
        DataSource = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("blog.mdb") & " ;"
        Conn.Open DataSource
    SQL_blog = "SELECT TOP 30 * FROM blog ORDER BY id DESC"
    Set RS = Conn.Execute(SQL_blog)
        IF RS.EOF THEN
        Response.Write "der er ingen data"
        ELSE
    WHILE NOT RS.EOF
    Dim strblog
    strblog=rs("indhold")
    if strblog <> "" then
    strblog=Replace(strblog,vbCrLf,"<br/>")
    else
    strblog = ""
    end if
    %>
    <h4><%=RS("overskrift")%></h4><%=RS("billede")%>
    <FONT SIZE="1"><%=RS("dato")%>&nbsp;&nbsp;<%=RS("forfatter")%></font>
    <br><br>
    <%=strblog%>
    <br>


<%
if request.QueryString("Action") = "Sendt" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("kommentar.mdb")
Conn.Open DSN

strSQL = "INSERT INTO kommentar (blogid, navn, besked) Values ('" & request.QueryString("id") & "', '" & request.Form("Navn") & "', '" & request.Form("Tekst") & "')"

Set RS = Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
end if
%>

<font size="2">
<div id="menu1" class="menu" onclick="event.cancelBubble=true">

<a href="#" onclick="var st=document.getElementById('showAnswer1').style;st.display=st.display!='block'?'block':'none';return false;">&raquo; Kommentaren virker ikke &laquo;</a><br>
<div id="showAnswer1" style="display:none;">&nbsp;&nbsp;&nbsp;&nbsp;

<form action="blog.asp?id=<%=RS("id")%>&Action="Sendt" method="post">
Dit navn:<br><input type="Tekst" name="navn"><br>
Din kommentar:<br><textarea name="Tekst" id="Tekst" style="width:90%; height:100px"></textarea><br>
<input type="submit" value="Send">
</form>

</div>
</div>
</font>

    <br><br>
   
    <%
    RS.MoveNext
    WEND
    END IF
    RS.Close
    Conn.close
    Set Conn = Nothing
    %>
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:47 #11
Prøv lige med det her:

<%
    Session.LCID = 1030
    %>   

    <%
        Set Conn = Server.CreateObject("ADODB.Connection")
        DataSource = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("blog.mdb") & " ;"
        Conn.Open DataSource
    SQL_blog = "SELECT TOP 30 * FROM blog ORDER BY id DESC"
    Set RS = Conn.Execute(SQL_blog)
        IF RS.EOF THEN
        Response.Write "der er ingen data"
        ELSE
    WHILE NOT RS.EOF
    Dim strblog
    strblog=rs("indhold")
    BlogID = rs("id")
    if strblog <> "" then
    strblog=Replace(strblog,vbCrLf,"<br/>")
    else
    strblog = ""
    end if
    %>
    <h4><%=RS("overskrift")%></h4><%=RS("billede")%>
    <FONT SIZE="1"><%=RS("dato")%>&nbsp;&nbsp;<%=RS("forfatter")%></font>
    <br><br>
    <%=strblog%>
    <br>


<%
if request.QueryString("Action") = "Sendt" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("kommentar.mdb")
Conn.Open DSN

strSQL = "INSERT INTO kommentar (blogid, navn, besked) Values ('" & request.QueryString("id") & "', '" & request.Form("Navn") & "', '" & request.Form("Tekst") & "')"

Set RS = Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
end if
%>

<font size="2">
<div id="menu1" class="menu" onclick="event.cancelBubble=true">

<a href="#" onclick="var st=document.getElementById('showAnswer1').style;st.display=st.display!='block'?'block':'none';return false;">&raquo; Kommentaren virker ikke &laquo;</a><br>
<div id="showAnswer1" style="display:none;">&nbsp;&nbsp;&nbsp;&nbsp;

<form action="blog.asp?id=<%=BlogId%>&Action="Sendt" method="post">
Dit navn:<br><input type="Tekst" name="navn"><br>
Din kommentar:<br><textarea name="Tekst" id="Tekst" style="width:90%; height:100px"></textarea><br>
<input type="submit" value="Send">
</form>

</div>
</div>
</font>

    <br><br>
   
    <%
    RS.MoveNext
    WEND
    END IF
    RS.Close
    Conn.close
    Set Conn = Nothing
    %>
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:50 #12
Hov du skal lige fjerne " omkring sendt...
<form action="blog.asp?id=<%=BlogId%>&Action=Sendt" method="post">
Avatar billede caf Nybegynder
22. januar 2007 - 17:54 #13
Jeg er ked af det, men det virker ikke.

Caf
Avatar billede fun22 Nybegynder
22. januar 2007 - 17:56 #14
har du uploaded den?
Avatar billede caf Nybegynder
22. januar 2007 - 18:01 #15
Jeps, men jeg får stadig fejl
Avatar billede caf Nybegynder
22. januar 2007 - 18:02 #16
Det er denne fejl:

The page cannot be found
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.
--------------------------------------------------------------------------------

Please try the following:

Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.
If you reached this page by clicking a link, contact the Web site administrator to alert them that the link is incorrectly formatted.
Click the Back button to try another link.
HTTP Error 404 - File or directory not found.
Internet Information Services (IIS)

--------------------------------------------------------------------------------

Technical Information (for support personnel)

Go to Microsoft Product Support Services and perform a title search for the words HTTP and 404.
Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled Web Site Setup, Common Administrative Tasks, and About Custom Error Messages.
Avatar billede fun22 Nybegynder
22. januar 2007 - 18:04 #17
Okay siden ligger så ikke der hvor den skal åbenbart...

Hvor ligger forsiden henne i forhold til blog.asp?
Avatar billede fun22 Nybegynder
22. januar 2007 - 18:05 #18
Prøv med den her i stedet:
<form action="?id=<%=BlogId%>&Action=Sendt" method="post">
Avatar billede caf Nybegynder
22. januar 2007 - 18:08 #19
Jeg har ingen blog.asp, blogen ligger i index.asp
så det er vel derfor. blog.asp skal rettes til index.asp ikke?
Avatar billede fun22 Nybegynder
22. januar 2007 - 18:10 #20
ja det er det.. eller
<form action="/?id=<%=BlogId%>&Action=Sendt" method="post">
Så skulle den også virke..
Avatar billede caf Nybegynder
22. januar 2007 - 18:10 #21
Har rettet ovenstående og får denne fejl:

ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

/index.asp, line 205
Avatar billede fun22 Nybegynder
22. januar 2007 - 18:16 #22
Det er fordi du lukker din conn når du gemmer kommentaren og så vil bruge den igen uden at åbne den..

Prøv lige at skifte en Sendt funktion ud med denne..
<%
if request.QueryString("Action") = "Sendt" then
Set Conn1 = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("kommentar.mdb")
Conn1.Open DSN

strSQL = "INSERT INTO kommentar (blogid, navn, besked) Values ('" & request.QueryString("id") & "', '" & request.Form("Navn") & "', '" & request.Form("Tekst") & "')"

Conn1.Execute(strSQL)
Conn1.Close
Set Conn1 = Nothing
end if
%>
Avatar billede caf Nybegynder
22. januar 2007 - 18:17 #23
Prøver lige :-)
Avatar billede caf Nybegynder
22. januar 2007 - 18:21 #24
Efetr jeg har trykket på Send, kommer denne:

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

[Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.

/index.asp, line 180

Og det er denne linie:
Conn1.Execute(strSQL)
Avatar billede fun22 Nybegynder
22. januar 2007 - 18:23 #25
hvilke felter har du i din tabel kommentar?
Avatar billede caf Nybegynder
22. januar 2007 - 18:25 #26
id
blogid
navn   
besked
Avatar billede fun22 Nybegynder
22. januar 2007 - 18:28 #27
kan du ikke sende en kopi af databasen til jtpdev@jtpdevelopment.dk så vil jeg lige kigge på den..
Avatar billede caf Nybegynder
22. januar 2007 - 18:29 #28
Er sendt :-)
Avatar billede caf Nybegynder
22. januar 2007 - 18:44 #29
Tak for den rettet udgave. Den har leg lige uploaded og jeg får desvære denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/index.asp, line 180
Avatar billede fun22 Nybegynder
22. januar 2007 - 18:53 #30
Også er der det når det er access så skal du bruge den her måde til at tilføje noget:

<%
if request.QueryString("Action") = "Sendt" then
Set Conn1 = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("kommentar.mdb")
Conn1.Open DSN

strSQL = "Select * From kommentar"
rs.Open strSQL, Conn1, adOpenKeyset, adLockOptimistic


rs.AddNew
rs("blogid") = request.QueryString("id")
rs("navn") = request.Form("Navn")
rs("besked") = request.Form("Tekst")
rs.Update

Conn1.Close
Set Conn1 = Nothing
end if
%>
Avatar billede caf Nybegynder
22. januar 2007 - 18:59 #31
Tak, er rettet

Nu kommer dette:
ADODB.Recordset error '800a0e79'

Operation is not allowed when the object is open.

/index.asp, line 179

Det er:
rs.Open strSQL, Conn1, adOpenKeyset, adLockOptimistic
Avatar billede fun22 Nybegynder
22. januar 2007 - 19:07 #32
<%
if request.QueryString("Action") = "Sendt" then
Set Conn1 = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("kommentar.mdb")
Conn1.Open DSN

Set rs1 = Server.CreateObject("ADODB.RecordSet")


strSQL = "Select * From kommentar"
rs1.Open strSQL, Conn1, adOpenKeyset, adLockOptimistic


rs1.AddNew
rs1("blogid") = request.QueryString("id")
rs1("navn") = request.Form("Navn")
rs1("besked") = request.Form("Tekst")
rs1.Update

Conn1.Close
Set Conn1 = Nothing
end if
%>
Avatar billede caf Nybegynder
22. januar 2007 - 19:14 #33
Det virker heller ikke.
Nu har du brugt så meget tid på mig, så hvis du ikke har lyst mere, må du gerne stoppe
:-)
Avatar billede tsunami Nybegynder
22. januar 2007 - 19:26 #34
ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/index.asp, line 182

...

Det er fejlen...

Det ser ud som om du prøver at sætte tekst ind i et felt der kun kan have tal... eller omvendt...

Kan vi få koden igen og få af vide hvad linie 182 er for en? :)
Avatar billede caf Nybegynder
22. januar 2007 - 19:31 #35
<%
        Session.LCID = 1030
        %>   

        <%
            Set Conn = Server.CreateObject("ADODB.Connection")
            DataSource = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("gjkigdfndhjkuuidguihrellelkvnchfugnmgih.mdb") & " ;"
            Conn.Open DataSource
        SQL_blog = "SELECT TOP 30 * FROM blog ORDER BY id DESC"
        Set RS = Conn.Execute(SQL_blog)
            IF RS.EOF THEN
            Response.Write "der er ingen data"
            ELSE
        WHILE NOT RS.EOF
        Dim strblog
        strblog=rs("indhold")
        BlogID = rs("id")
        if strblog <> "" then
        strblog=Replace(strblog,vbCrLf,"<br/>")
        else
        strblog = ""
        end if
        %>
        <h4><%=RS("overskrift")%></h4><%=RS("billede")%>
        <FONT SIZE="1"><%=RS("dato")%>&nbsp;&nbsp;<%=RS("forfatter")%></font>
        <br><br>
        <%=strblog%>
        <br>


    <%
if request.QueryString("Action") = "Sendt" then
Set Conn1 = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("kommentarcafxrea.mdb")
Conn1.Open DSN

Set rs1 = Server.CreateObject("ADODB.RecordSet")


strSQL = "Select * From kommentar"
-->LINIE 182-->rs1.Open strSQL, Conn1, adOpenKeyset, adLockOptimistic


rs1.AddNew
rs1("blogid") = request.QueryString("id")
rs1("navn") = request.Form("Navn")
rs1("besked") = request.Form("Tekst")
rs1.Update

Conn1.Close
Set Conn1 = Nothing
end if
%>


    <font size="2">
    <div id="menu1" class="menu" onclick="event.cancelBubble=true">

    <a href="#" onclick="var st=document.getElementById('showAnswer1').style;st.display=st.display!='block'?'block':'none';return false;">&raquo; Kommentaren virker ikke &laquo;</a><br>
    <div id="showAnswer1" style="display:none;">&nbsp;&nbsp;&nbsp;&nbsp;

    <form action="/?id=<%=BlogId%>&Action=Sendt" method="post">
    Dit navn:<br><input type="Tekst" name="navn"><br>
    Din kommentar:<br><textarea name="Tekst" id="Tekst" style="width:90%; height:100px"></textarea><br>
    <input type="submit" value="Send">
    </form>

    </div>
    </div>
    </font>

        <br><br>
   
        <%
        RS.MoveNext
        WEND
        END IF
        RS.Close
        Conn.close
        Set Conn = Nothing
        %>
Avatar billede caf Nybegynder
22. januar 2007 - 19:31 #36
-->LINIE 182--> Står ud for linien
Avatar billede tsunami Nybegynder
22. januar 2007 - 19:53 #37
Det ser ud til du måske ikke har includeret den fil som definere konstanterne adOpenKeyset og adLockOptimistic... prøv lige og tjek om disse er includeret... jeg husker ikke lige hvad den hedder den fil lige her for jeg har ikke IIS'en installeret...

Hvad sker der hvis du laver denne her om til

Set rs1 = Server.CreateObject("ADODB.RecordSet")


strSQL = "Select * From kommentar"
rs1.Open strSQL, Conn1, adOpenKeyset, adLockOptimistic


rs1.AddNew
rs1("blogid") = request.QueryString("id")
rs1("navn") = request.Form("Navn")
rs1("besked") = request.Form("Tekst")
rs1.Update

Dette her

Conn1.Execute "INSERT INTO kommentar (blogid,navn,besked) VALUES (" & Request.QueryString("id") & ",'" & Request.Form("Navn") & "','" & Request.Form("tekst") & "')"

Kan ikke huske om det er den rigtige måde at lave en INSERT into sætning men håber den virker :p

Ellers skal du kigge efter i DB'en om blogid er et tal felter og de 2 andre er tekst felter...
Avatar billede caf Nybegynder
22. januar 2007 - 20:02 #38
Så får jeg denne:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/index.asp, line 178

Og det er de linie du gav mig.

Jeg må hellere se på min db i morgen. Har ikke access herhjemme, kun på jobbet.
Avatar billede tsunami Nybegynder
22. januar 2007 - 20:11 #39
Det betyder at du ikke har skriverettigheder på din database... Dette skal gøres på filsystem nivau...
Avatar billede caf Nybegynder
23. januar 2007 - 09:42 #40
Godmorgen

Så kommer der ikke flere fejlmeddelser :-))
og der bliver også skrevet i databasen.
Avatar billede tsunami Nybegynder
23. januar 2007 - 12:56 #41
Ja... sådan skal det gøres :p
Avatar billede caf Nybegynder
23. januar 2007 - 15:01 #42
Har lige opdaget at hvis jeg skriver en besked, så gemmes den 30 gange i databasen. Er det pga. denne:
SQL_blog = "SELECT TOP 30 * FROM blog ORDER BY id DESC"
Avatar billede tsunami Nybegynder
23. januar 2007 - 17:59 #43
Øhm... det kommer an på hvor du bruger SQL_blog bagefter... ellers skulle det ikke være den da den kun henter og gemmer ikke noget i db'en
Avatar billede caf Nybegynder
24. januar 2007 - 11:41 #44
fun22 og tsunami læg et svar så får I point. Tuinde tak for hjælpen og jeres tålmodighed.

Caf
Avatar billede tsunami Nybegynder
24. januar 2007 - 20:30 #45
Ok :)
Avatar billede caf Nybegynder
25. januar 2007 - 16:03 #46
tsunami du får point da fun22 ikke har svaret.
Tak for hjælpen :-)
Caf
Avatar billede tsunami Nybegynder
26. januar 2007 - 13:59 #47
Selv tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester