Avatar billede blaatand Nybegynder
11. december 2003 - 18:02 Der er 13 kommentarer og
1 løsning

Tjek om ip findes = fejl

<!--#include file="dbconn.asp"-->
<%
strSQL = "SELECT TOP 1 * FROM T_TAGWALL"
Set rs = Conn.Execute(strSQL)

strIPTJEK = rs("M_IP")

If strIPTJEK <> strIPTJEK Then
%>
<%
strSQL = "INSERT INTO T_TAGWALL(M_NAME, M_TAG, M_WWW, M_IP, M_DATE) VALUES('"&Replace(Request.Form("formNICKNAME"),"'","''")&"', '"&Replace(Request.Form("formTAG"),"'","''")&"', '"&Replace(Request.Form("formWWW"),"'","''")&"', '"&strIP&"', Date())"
Conn.Execute(strSQL)
Response.Write("<a href=""tagwall.asp?tagwall=show"" class=""maintekst"">Taget er gemt i databasen, tryk her for at komme til tagwallen!</a>")
%>
<!--#include file="dbclose.asp"-->
<%
Else

Response.Write("Woops, du har vist postet for nylig!")

End if
%>
<%
End if
%>


Selvom IP adresserne er forskellige, så kommer den stadig ud med at man for nylig har postet... kan man ikke lave tjekket på denne måde med ip adresser?
Avatar billede blaatand Nybegynder
11. december 2003 - 18:06 #1
hov, dette er i toppen over det her kode, fik det ikke lige med:



<%
If Request.QueryString("tagwall") = "post" Then
strIP = Request.Servervariables("REMOTE_ADDR")
%>
Avatar billede eagleeye Praktikant
11. december 2003 - 18:37 #2
Prøv at rette:

strSQL = "SELECT TOP 1 * FROM T_TAGWALL"
Set rs = Conn.Execute(strSQL)

strIPTJEK = rs("M_IP")

If strIPTJEK <> strIPTJEK Then


til dette så den tjekke ip adresen:

strSQL = "SELECT * FROM T_TAGWALL where M_IP = '" & Request.ServerVariables("REMOTE_ADDR") & "'"
Set rs = Conn.Execute(strSQL)

If rs.EOF Then
Avatar billede blaatand Nybegynder
11. december 2003 - 18:42 #3
Samme, det giver bare woops du har vist postet :)
Avatar billede eagleeye Praktikant
11. december 2003 - 18:44 #4
Så må IP adressen være i databasen eller ville den ikke skrive det, er du 100% sikker på den ikke er i tabelen?
Avatar billede blaatand Nybegynder
11. december 2003 - 18:49 #5
100% sikker :/

Har endda slettet ip adresserne i databasen for en sikkerheds skyld
Avatar billede eagleeye Praktikant
11. december 2003 - 18:51 #6
Prøv lige at rette:

If rs.EOF Then

Til:

If rs.BOF or rs.EOF Then
Avatar billede blaatand Nybegynder
11. december 2003 - 18:53 #7
Woops, du har vist postet for nylig!

altså jeg forstår det heller ikke selv, for jeg har trukket dataer ud af databasen + remote_addr og skrevet dem ud i browseren, og de var ikke ens! Derfor forstod jeg heller ikke hvorfor min metode ikke virkede, samtidig har jeg prøvet en metode der ligner din lidt...

Fatter ikke en ski...
Avatar billede eagleeye Praktikant
11. december 2003 - 19:00 #8
Så hvis du inde i else delen tilføjer efter den du har:

Response.Write("Woops, du har vist postet for nylig!")
Response.Write rs("M_IP") & " " & Request.ServerVariables("REMOTE_ADDR")

Så vil den skrive to forskellige IP adresser?
Avatar billede blaatand Nybegynder
11. december 2003 - 19:09 #9
Woops, du har vist postet for nylig! error '80020009'
/tagwall.asp, line 48
Avatar billede blaatand Nybegynder
11. december 2003 - 19:09 #10
<%
                If Request.QueryString("tagwall") = "post" Then
                strIP = Request.Servervariables("REMOTE_ADDR")
            %>
            <!--#include file="dbconn.asp"-->
            <%
                strSQL = "SELECT * FROM T_TAGWALL where M_IP = '" & Request.ServerVariables("REMOTE_ADDR") & "'"
                Set rs = Conn.Execute(strSQL)
               
                If rs.BOF or rs.EOF Then

                Response.Write("Woops, du har vist postet for nylig!")
                Response.Write rs("M_IP") & " " & Request.ServerVariables("REMOTE_ADDR")
               
                Else
            %>
            <%
                strSQL = "INSERT INTO T_TAGWALL(M_NAME, M_TAG, M_WWW, M_IP, M_DATE) VALUES('"&Replace(Request.Form("formNICKNAME"),"'","''")&"', '"&Replace(Request.Form("formTAG"),"'","''")&"', '"&Replace(Request.Form("formWWW"),"'","''")&"', '"&strIP&"', Date())"
                Conn.Execute(strSQL)
                Response.Write("<a href=""tagwall.asp?tagwall=show"" class=""maintekst"">Taget er gemt i databasen, tryk her for at komme til tagwallen!</a>")
            %>
            <!--#include file="dbclose.asp"-->
            <%
                End if
            %>
            <%
                End if
            %>
Avatar billede blaatand Nybegynder
11. december 2003 - 19:10 #11
If Request.QueryString("tagwall") = "post" Then er linie 48, hvilket jeg intet fatter af o_O
Avatar billede eagleeye Praktikant
11. december 2003 - 19:13 #12
Når der er også blevet byttet rundt på then og else delen fra spørgsmålet.

Hvis det er lavet på den måde så ret:

              If rs.BOF or rs.EOF Then

Til:
              If Not rs.EOF Then
Avatar billede blaatand Nybegynder
11. december 2003 - 19:26 #13
Virker...

Og nej jeg har ikke byttet om på nogle fra spørgsmålet af, udover det som du har bedt mig om :)
Avatar billede blaatand Nybegynder
11. december 2003 - 19:30 #14
Tak for hjælpen
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