01. februar 2002 - 10:36Der er
7 kommentarer og 2 løsninger
if InStr
Hej...
Jeg skal tjekke om brugerens IP allerede er i min database i dag. (se kode nederst).
Jeg har for det første et problem med datoen - den skal kun tjekke i databasen hvor datoen er den samme som idag. Formatet er sat til kort dato format og smides i med =Now() - dvs. det kan se ud som: 01-02-2001
Er der nogen der kan se fejlen - for det virker ikke...
----------------- idagdato = date refer_ip = Request.ServerVariables("REMOTE_ADDR")
Set RS = server.CreateObject("ADODB.connection") RS.open ConnString SQL = "SELECT * FROM Posts WHERE Dato = idagdato ORDER by dato desc" Set RS = RS.Execute( SQL )
do until RS.eof
Dato = RS("Dato") Refer = RS("Refer") Email = RS("Email")
response.write Refer & "<br>" if InStr(Refer,"refer_ip") then response.write "<br>Allerede postet idag..." response.write "<a href='webmasters.html'><< tilbage</a><br><br>" %> <script> parent.location="fejl.html"; </script> <%
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
SQL = "SELECT * FROM Posts WHERE Dato=DATE() ORDER by dato desc"
sådan .. Access/MySQL/MSSQL kan selv klare det ... DATE() giver datoen i dag.
Synes godt om
Slettet bruger
01. februar 2002 - 10:44#2
ok - jeg kan do stadig ikke få den til at udføre if then sætningen korrekt - altså HVIS den finder IP i databasen med idags dato skal den gøre et - ellers noget andet.
kan du hjælpe mig med den?
Synes godt om
Slettet bruger
01. februar 2002 - 10:51#3
I koden ovenfor skal den jo stoppe med at køre videre hvis den finder Ip'en - men det vil den ikke (i den efterfølgende kode smides posten i databasen) og det skal den jo kun hvis ikke IP'en er fundet
Synes godt om
Slettet bruger
01. februar 2002 - 10:55#4
InStr() giver dig et index for hvor i strengen det søgte befinder sig. Som jeg ser din kode, så leder du efter strengen "refer_ip", og ikke indholdet af variablen med samme navn :-)
Altså: If InStr(Refer, refer_ip) > 0 Then ... Else ... End If
- Hvis det heller ikke triller, så prøv at CStr() bege argumenterne før du kalder InStr()
/CS
Synes godt om
Slettet bruger
01. februar 2002 - 11:03#5
Greystate > takker.Prøv lige at tjek koden. Så er det måske nemmere for dig at se hvad jeg mener. Nu kalder den fint nok siden "fejl.html" hvis den finder en IP - men den smider stadig posten i databasen...
' --- Tjek for flere post på samme dag Set RS = server.CreateObject("ADODB.connection") RS.open ConnString SQL = "SELECT * FROM Posts WHERE Dato = DATE()" Set RS = RS.Execute( SQL )
do until RS.eof
Dato = RS("Dato") Refer = RS("Refer") Email = RS("Email")
if request.form("Confirmmail") = "" then RS("Confirmmail") = False else RS("Confirmmail") = request.form("Confirmmail") end if
response.write "Post added to database."
RS.update RS.close RS = null
Synes godt om
Slettet bruger
01. februar 2002 - 11:10#6
Yep - det er een af dem hvor man skal have styr på forskellen mellem Client-Side og Server-Side scripting...
Den hurtigste løsning er at udskifte din "end if" med en "Else", og indsætte en ny "End If" IMELLEM "RS.update" og "RS.close"...
/CS
Synes godt om
Slettet bruger
01. februar 2002 - 11:11#7
Ups - "End If" skal bare sættes ind til allersidst (efter RS = null)...
Jeg overså den nye kodeblok..
/CS
Synes godt om
Slettet bruger
01. februar 2002 - 11:21#8
Sådan havde jeg faktisk prøvet - men får så:
'Loop' uden 'Do' /post.asp, line 70
Synes godt om
Slettet bruger
01. februar 2002 - 11:31#9
tror jeg har den
Synes godt om
Ny brugerNybegynder
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.