Avatar billede zyreux Nybegynder
08. november 2003 - 13:49 Der er 23 kommentarer og
1 løsning

asp koden "sletter" resten af html'en!

Min kode ser sådan ud:

<body>
    <table border="0" width="600" align="center" cellpadding="0" cellspacing="0">
        <tr>
            <td align="left"><img src="../gfx/toplogo.jpg"></td>
            <td align="right" id="date">
                <script language=javascript>
                    <!--
                    var ugeDag = new Array                                        ("Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag")
                    var maaned = new Array    ("Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November    ","December")
                    var nu = new Date
                    if(document.images){
                    ptr_home = new Image
                    ptr_gb = new Image
                    ptr_dansk = new Image
                    ptr_gen2 = new Image
                    ptr_home.src = 'images/ptr_home.gif'
                    ptr_gb.src = 'images/ptr_gb.gif'
                    ptr_dansk.src = 'images/ptr_dansk.gif'
                    ptr_gen2.src = 'images/ptr_gen_ver2.gif'
                    }
                    else
                    {
                    ptr_home = ""
                    ptr_gb = ""
                    ptr_dansk = ""
                    ptr_gen2 = ""
                    document.roll = ""
                    }
                    //-->
                    </script>               
                <script language=javascript>
                    document.write(" "+ugeDag[nu.getDay()] + " d. " + nu.getDate()+ ". "+ maaned[nu.getMonth()] +     " 2003")
                </script>
            </td>
        </tr>
    </table>
    <table border="0" width="600" align="center" cellpadding="0" cellspacing="0">
        <tr height="1" width="100%" id="border">
            <td><img src="../gfx/border.jpg"></td>
        </tr>
        <tr>
            <td><img src="../gfx/logo.jpg"></td>
        </tr>
        <tr height="1" width="100%" id="border">
            <td><img src="../gfx/border.jpg"></td>
        </tr>
        <tr height="3">
            <td></td>
        </tr>
        <tr>
            <td align="center" id="menu">[<font color="#FF7D00">-</font> <b>navigation</b> <font color="#FF7D00">-</font>]|[<font color="#FF7D00">-</font> <a href="../default.asp"><b>f</b>orside</a> <font color="#FF7D00">-</font> <a href="../profil/default.asp"><b>p</b>rofil</a> <font color="#FF7D00">-</font> <a href="../galleri/default.asp"><b>g</b>alleri</a> <font color="#FF7D00">-</font> <a href="../scripts/default.asp"><b>s</b>cripts</a> <font color="#FF7D00">-</font> <a href="../download/default.asp"><b>d</b>ownload</a> <font color="#FF7D00">-</font> <a href="../links/default.asp"><b>l</b>inks</a> <font color="#FF7D00">-</font> <a href="../kontakt/default.asp"><b>k</b>ontakt</a> <font color="#FF7D00">-</font> <b>g</b>æstebog <font color="#FF7D00">-</font> <a href="../administration/default.asp"><b>a</b>dministration</a> <font color="#FF7D00">-</font>]</td>
        </tr>
        <tr height="5">
            <td></td>
        </tr>
        <tr height="1" width="100%" id="border">
            <td><img src="../gfx/border.jpg"></td>
        </tr>
    </table>
    <table border="0" width="600" align="center" cellpadding="10" cellspacing="0">
        <tr width="200">
            <td><b>G</b>æstebog...<br><br></td>
        </tr>
    </table>
        <%
            Set Conn = Server.CreateObject("ADODB.Connection")
            ConnectionStreng = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../db/db.mdb")
            Conn.Open ConnectionStreng
               
            strSQL = "Select * from T_Gæstebog Order By ID Desc"
            Set rs = Conn.Execute(strSQL)

              IF rs.EOF then Response.Write "<table border='0' width='500' align='center' cellpadding='0' cellspacing='0'><tr><td>Der er ingen beskeder i gæstebogen!</td></tr></table>"
            IF rs.EOF then Response.End

            Do

            strEmail = "<a href='mailto:" & rs("Email") & "'>Email</a>"
            strHjemmeside = "<a href='" & rs("Hjemmeside") &"'>Hjemmeside</a>"
   
            Respons.Write "<table border='0' width='500' cellpadding='0' cellspacing='0'><tr><td><font color='#FF7D00'>" & rs("Emne") & "</font> skrevet af <font color='#FF7D00'>" & rs("Navn") & "</font> d. " & FormatDateTime(rs("Dato"), vbLongDate) & "</td></tr><tr><td>" & rs("Besked") & "</td></tr><tr><td><font color='#FF7D00'>" & rs("Navn") & "'s</font>" & strEmail & "<font color='#FF7D00'>-</font> " & strHjemmeside & "</td></tr></table>"   

              rs.MoveNext
            Loop While Not rs.EOF

            Conn.Close
            Set Conn = Nothing
        %>
   
    <table border="0" width="400" align="center" cellpadding="0" cellspacing="0">
        <tr height="1" id="border">
            <td><img src="../gfx/border.jpg"></td>
        </tr>
    </table>
    <form action="tilfoj.asp" method="post">
    <table border="0" width="400" align="center" cellpadding="10" cellspacing="0">
        <tr>
            <td>Navn <font color="#FF7D00">-</font><br></td>
            <td><input name="Navn" class="int"></input><br></td>
        </tr>
        <tr>
            <td>Email <font color="#FF7D00">-</font><br></td>
            <td><input name="Email" class="int"></input><br></td>
        </tr>
        <tr valign="top">
            <td>Hjemmeside <font color="#FF7D00">-</font><br>(http:// må ikke slettes, ellers virker det ikke)</td>
            <td><input name="Hjemmeside" class="int" value="http://"></input><br></td>
        </tr>
        <tr>
            <td>Emne <font color="#FF7D00">-</font><br></td>
            <td><input name="Emne" class="int"></input><br></td>
        </tr>
        <tr valign="top">
            <td>Besked <font color="#FF7D00">-</font><br></td>
            <td><textarea rows="7" cols="20" name="Besked" class="int"></textarea></td>
        </tr>
        <tr>
            <td></td>
            <td><input action="tilfoj.asp" type="submit" value="Tag it" class="knp"></td>
        </tr>
    </table>
    </form>
    <table border="0" width="600" align="center" cellpadding="0" cellspacing="0">
        <tr height="5">
            <td></td>
        </tr>
        <tr height="1" width="100%" id="border">
            <td><img src="../gfx/border.jpg"></td>
        </tr>
        <tr height="1">
            <td id="c"></td>
        </tr>
        <tr>
            <td align="center" id="c">Casper Madsen &copy 2003. Alle rettigheder reserveret.</td>
        </tr>
        <tr height="2">
            <td id="c"></td>
        </tr>
        <tr height="1" width="100%" id="border">
            <td><img src="../gfx/border.jpg"></td>
        </tr>
    </table>
</body>

Problemmet er dette http://www.zyreux.dk/gb/default.asp - Den sletter de sidste tabeler? Hvordan får jeg den til at vise dem?
Avatar billede eagleeye Praktikant
08. november 2003 - 14:03 #1
Sådan har du lavet koden ;)

Den if sætning gør det, den stopper hvis der inden poster i gæste bogen.

IF rs.EOF then Response.End



Du skal lave koden om sådan at den bare ikke førsøger at udskrive hvis der ingen poster er..:

Så prøv at rette diss linjer:



              IF rs.EOF then Response.Write "<table border='0' width='500' align='center' cellpadding='0' cellspacing='0'><tr><td>Der er ingen beskeder i gæstebogen!</td></tr></table>"
            IF rs.EOF then Response.End

            Do

            strEmail = "<a href='mailto:" & rs("Email") & "'>Email</a>"
            strHjemmeside = "<a href='" & rs("Hjemmeside") &"'>Hjemmeside</a>"
   
            Respons.Write "<table border='0' width='500' cellpadding='0' cellspacing='0'><tr><td><font color='#FF7D00'>" & rs("Emne") & "</font> skrevet af <font color='#FF7D00'>" & rs("Navn") & "</font> d. " & FormatDateTime(rs("Dato"), vbLongDate) & "</td></tr><tr><td>" & rs("Besked") & "</td></tr><tr><td><font color='#FF7D00'>" & rs("Navn") & "'s</font>" & strEmail & "<font color='#FF7D00'>-</font> " & strHjemmeside & "</td></tr></table>"   

              rs.MoveNext
            Loop While Not rs.EOF

            Conn.Close
            Set Conn = Nothing
        %>




Til dette:


              IF rs.EOF then Response.Write "<table border='0' width='500' align='center' cellpadding='0' cellspacing='0'><tr><td>Der er ingen beskeder i gæstebogen!</td></tr></table>"

            Do While Not rs.EOF

            strEmail = "<a href='mailto:" & rs("Email") & "'>Email</a>"
            strHjemmeside = "<a href='" & rs("Hjemmeside") &"'>Hjemmeside</a>"
   
            Respons.Write "<table border='0' width='500' cellpadding='0' cellspacing='0'><tr><td><font color='#FF7D00'>" & rs("Emne") & "</font> skrevet af <font color='#FF7D00'>" & rs("Navn") & "</font> d. " & FormatDateTime(rs("Dato"), vbLongDate) & "</td></tr><tr><td>" & rs("Besked") & "</td></tr><tr><td><font color='#FF7D00'>" & rs("Navn") & "'s</font>" & strEmail & "<font color='#FF7D00'>-</font> " & strHjemmeside & "</td></tr></table>"   

              rs.MoveNext
            Loop

            Conn.Close
            Set Conn = Nothing
        %>
Avatar billede zyreux Nybegynder
08. november 2003 - 15:10 #2
Det funker, men... Når jeg så vil tilføje en besked og trykker på "Tag it" siger den "Der opstod en intern HTTP 500-serverfejl"! Hvad skal jeg så gøre?
Avatar billede eagleeye Praktikant
08. november 2003 - 15:15 #3
Prøv at slå denne fra i IE:

Funktioner  -> internetindstillinger  -> Avanceret
Find og fjern kryds i "vis meddelelse om uskadelige http-fejl" checkboxen

så får du denne fejl frem:
Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'FormatDateTime'

/gb/tilfoj.asp, line 8
Avatar billede zyreux Nybegynder
08. november 2003 - 15:21 #4
Når man trykker på "Tag it" smider den data videre... Koden for tilfoj.asp ser følgende ud:

<html>
<body>
<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    ConnectionStreng = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../db/db.mdb")
    Conn.Open ConnectionStreng
 
    strSQL = "Insert into T_Gæstebog (Ip, Dato, Navn, Email, Hjemmeside, Emne, Besked) values('" & Request.ServerVariables("REMOTE_HOST") & "', '" & Request.FormatDateTime("vbLongDate") & "', '" & Request.Form("Navn") & "', '" & Request.Form("Email") & "', '" & Request.Form("Hjemmeside") & "', '" & Request.Form("Emne") & "', '" & Request.Form("Besked") & "')"
    Set rs = Conn.Execute(strSQL)

    Response.redirect "default.asp"

    Conn.Close
    Set Conn = Nothing
%>
</body>
</html>

Hvad gør jeg galt? Jeg vil ha' den til at tilføje en dato i databasen!
Avatar billede eagleeye Praktikant
08. november 2003 - 15:25 #5
Ja den er gal her:
Request.FormatDateTime("vbLongDate")

Det kan man ikke på den måde det skal laves om så den hendter form-inputet og putter i formatdatetime sådan her:

FormatDateTime(Request..Form("FELT_NAVN", vbLongDate))
Avatar billede zyreux Nybegynder
08. november 2003 - 15:25 #6
Ja men der er jo ikke noget feltnavn! Den skal bare hente det auto!
Avatar billede eagleeye Praktikant
08. november 2003 - 15:27 #7
Ok så prøv den indbyggede Date() funktion i databasen så din SQL blvier sådan her:

strSQL = "Insert into T_Gæstebog (Ip, Dato, Navn, Email, Hjemmeside, Emne, Besked) values('" & Request.ServerVariables("REMOTE_HOST") & "', Date(), '" & Request.Form("Navn") & "', '" & Request.Form("Email") & "', '" & Request.Form("Hjemmeside") & "', '" & Request.Form("Emne") & "', '" & Request.Form("Besked") & "')"
Avatar billede zyreux Nybegynder
08. november 2003 - 15:31 #8
Ok.. Nu skriver den så

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Gu' funker det :'.

/gb/tilfoj.asp, line 9

"Gu' funker det" skriv jeg i feltnavnet Besked!
Avatar billede eagleeye Praktikant
08. november 2003 - 15:35 #9
Det er så fordi man skal huske at lave en  ' om til to pinger '' da ' bruges til at state og stoppe strengen i SQL sætnigner ;)

Det er altid en god ide at lave ' om til '' ved alle tekst felter sådan man undgår den fejl:

Principet
str = Replace(str, "'", "''")

Prøv sådan he:


strSQL = "Insert into T_Gæstebog (Ip, Dato, Navn, Email, Hjemmeside, Emne, Besked) values('" & Request.ServerVariables("REMOTE_HOST") & "', Date(), '" & replace(Request.Form("Navn"),"'","''") & "', '" & replace(Request.Form("Email"),"'","''") & "', '" & replace(Request.Form("Hjemmeside"),"'","''") & "', '" & replace(Request.Form("Emne"),"'","''") & "', '" & replace(Request.Form("Besked"),"'","''") & "')"
Avatar billede zyreux Nybegynder
08. november 2003 - 15:38 #10
Ok.. Nu sker der noget men tjek det lige http://www.zyreux.dk/gb/default.asp
Avatar billede zyreux Nybegynder
08. november 2003 - 15:40 #11
Hvorfor skriver den 2 tomme beskeder?
Avatar billede eagleeye Praktikant
08. november 2003 - 15:42 #12
Prøv at tjekke din database om der ikke er kommet et par tomme i den.
Avatar billede zyreux Nybegynder
08. november 2003 - 15:44 #13
Det er der.. Kan man lave en kode så man SKAL skrive noget?
Avatar billede zyreux Nybegynder
08. november 2003 - 15:53 #14
Hvis du vil lave sådan en kode til mig, får du resten af mine point. Ialt 340 :)
Avatar billede eagleeye Praktikant
08. november 2003 - 16:05 #15
Du kan lave det på to måder. Den ene er ved et javascript til at validere form input før de sendes fra form som sikre at felterne er udfyldt.

ASP løsningen er at tjekke på form felterne indeholder noget inde man gemmer i databasen:

Så denne koden du gemmer med:

<html>
<body>
<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    ConnectionStreng = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../db/db.mdb")
    Conn.Open ConnectionStreng
 
    strSQL = "Insert into T_Gæstebog (Ip, Dato, Navn, Email, Hjemmeside, Emne, Besked) values('" & Request.ServerVariables("REMOTE_HOST") & "', Date(), '" & replace(Request.Form("Navn"),"'","''") & "', '" & replace(Request.Form("Email"),"'","''") & "', '" & replace(Request.Form("Hjemmeside"),"'","''") & "', '" & replace(Request.Form("Emne"),"'","''") & "', '" & replace(Request.Form("Besked"),"'","''") & "')"
    Set rs = Conn.Execute(strSQL)

    Response.redirect "default.asp"

    Conn.Close
    Set Conn = Nothing
%>
</body>
</html>


Bliver til dette eksempel her skal navn og besked være udfyldt for den vil gemme det i databasen, der kan let tilføjes flere felter som skal udfyldes:


<html>
<body>
<%

if Trim(Request.Form("Besked")) <> "" AND Trim(Request.Form("navn")) <> "" then
    Set Conn = Server.CreateObject("ADODB.Connection")
    ConnectionStreng = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../db/db.mdb")
    Conn.Open ConnectionStreng
 
    strSQL = "Insert into T_Gæstebog (Ip, Dato, Navn, Email, Hjemmeside, Emne, Besked) values('" & Request.ServerVariables("REMOTE_HOST") & "', Date(), '" & replace(Request.Form("Navn"),"'","''") & "', '" & replace(Request.Form("Email"),"'","''") & "', '" & replace(Request.Form("Hjemmeside"),"'","''") & "', '" & replace(Request.Form("Emne"),"'","''") & "', '" & replace(Request.Form("Besked"),"'","''") & "')"
    Set rs = Conn.Execute(strSQL)
    Conn.Close
    Set Conn = Nothing

end if

Response.redirect "default.asp"

%>
</body>
</html>
Avatar billede zyreux Nybegynder
08. november 2003 - 16:10 #16
Hvad med så der kommer en box frem og fortæller en at man SKAL skrive det?
Avatar billede zyreux Nybegynder
08. november 2003 - 16:11 #17
Ej glem det! Det kunne jeg jo bare skrive :)
Avatar billede eagleeye Praktikant
08. november 2003 - 16:11 #18
Angående java script:

Så kan du lave en funtion som eksvis hedder validate..:


<script>
function validate(theform) {
  if (theform.navn.value=='') {
    alert("Navn skal udfyldes!");
    return false;
  }
  if (theform.Besked.value=='') {
    alert("Besked skal udfyldes!");
    return false;
  }

  return true;
}
</script>


og så lave form taggen om fra:
<form action="tilfoj.asp" method="post">

til:
<form action="tilfoj.asp" method="post" onsubmit="validate(this);">
Avatar billede zyreux Nybegynder
08. november 2003 - 16:17 #19
Jeg siger 1000 tak for hjælpen.. Det er skønt at sådan nogle proffe gutter, som dig, vil hjælpe neWbs som jeg :D
Avatar billede zyreux Nybegynder
08. november 2003 - 16:18 #20
Har du en hjemmeside? Så jeg kan linke til dig, som tak for hjælpen?
Avatar billede eagleeye Praktikant
08. november 2003 - 16:20 #21
Ja jeg har:
www.codeone.dk

og så denne som ikke er blevet til specielt meget:
www.eagleeye.dk
Avatar billede zyreux Nybegynder
08. november 2003 - 16:25 #22
Sådan.. Det er vel ok at jeg har tilføjet dig under venner? :)
Avatar billede eagleeye Praktikant
08. november 2003 - 16:29 #23
Ja det er helt i orden ;)
du kan nøjes med at linket til eksempelvis den ene www.codeone.dk hvis du ikke vil havde begge til at stå.
Avatar billede zyreux Nybegynder
08. november 2003 - 16:31 #24
Det gør skam ikke noget!
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