webForumDet fria alternativet

Instr??

ASPur ASP

21 svar · 487 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Kan man på något sätt kolla såhär:

I databasen finns det massor av domäner blockade. Ex:

gruvsjo.com
sidan.com
kalle.com

Strängen Url ska jag kolla om den finns med i databasen.

Url = "gruvsjo.com/hugo/index.asp"

Kolla igenom databasen för blockade domäner och om någon av de blockade finns med i strängen Url ska det ej Godkännas. Annars Godkänns Url.

Hoppas någon fattar vad jag menar.

Har denna kod som jag testat med. Men den funkar inge bra.

<%Set Conn = createObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("galleri.mdb")

Url = "gruvsjo.com/hugo/index.asp"

Set Doman = Conn.Execute("Select * From domanblock")
If Not Doman.EOF Then
  Do Until Doman.EOF
    If InStr(Url,Doman("galleryUrl")) then
      Response.Write "Nej" & "<br>"
    Else
      Response.Write "Ja" & "<br>"
    End If
  Doman.MoveNext
  Loop
Else
  Response.Write "Tomt i databasen" & "<br>" 
End If%>
Medlem sedan dec. 20002 526 inlägg
#2

Vad far du for felmess?

Medlem sedan dec. 20011 860 inlägg
#3

Den hoppar ju till ja fast den finns i databasen eftersom när den loopar så hittar den ju ex post 1 att det inte stämmer och då blire ju Ja.

Vet inte hur jag ska lösa det att efter den loopat igenom kolla om nån av posterna inehåll url och sen skicka vidare.

Jag kanske tänker på fel sätt?

Medlem sedan dec. 20003 887 inlägg
#4
If Not InStr(Url, Doman("galleryUrl")) = 0 Then
Medlem sedan dec. 20011 860 inlägg
#5

Funkar ej iallafall! :/ I detta fall ligger gruvsjo.com sist i databasen när den kollar efter Url.

Man måste på nå sätt göra att när man väl loopat igenom databasen, DÅ ska den skicka en vidare. Som det är nu så kollar den först post 1 och den är i detta fall Ja och skickar vidare till Ja.

Hur gör jag?

Medlem sedan dec. 20003 887 inlägg
#6
bOk = True

Do Until Doman.EOF
    If InStr(Url,Doman("galleryUrl")) then
      bOk = False
    End If
  Doman.MoveNext
Loop

If bOk Then
  'Skicka vidare
Else
  'Blockad adress
End If
Medlem sedan dec. 20011 860 inlägg
#7

Tackar. FUnkar bra nu!

Medlem sedan apr. 20003 174 inlägg
#8

Vore det inte enklare med LIKE?

[RED]Set RecSet = Conn.Execute("SELECT galleryUrl FROM domanblock WHERE galleryUrl LIKE '%"& Url &"'")

If RecSet.EOF Then
	' Fanns inte med..
Else
	' Fanns med..
End If[/RED]
Medlem sedan sep. 20026 425 inlägg
#9

Jag är helt inne på Palles spår.. Mer om SQL-funktioner finns på webeye.nu; http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp9.asp

Medlem sedan dec. 20011 860 inlägg
#10

Okej så om jag då han en länk som ser ut så här:
http://www.gruvsjo.com/kalle/index.asp

Så kommer den blockas eftersom gruvsjo.com finns i databasen?

Medlem sedan sep. 20026 425 inlägg
#11

Jo, om du definierar det så med Like. Kod kommer..

Medlem sedan dec. 20011 860 inlägg
#12

Jag tänker nog helt fel bara. Är nog smidigt som du säger.

Medlem sedan dec. 20003 887 inlägg
#13

Nepp, men om du ändrar LIKE-satsen till '%" & Url & "%', gör den det, annars kommer den bara att blocka om url-en slutar på ...gruvsjo.com

Det är väl mer eller mindre en smaksak hur man löser detta, men det finns ju klara fördelar med att använda en tabell, eftersom då är det en smal sak att lägga till och ta bort url:er.

En tredje variant är att använda ett regular expression, men det är till att utnyttja fel metod ;)

Set rs = Conn.Execute("SELECT galleryUrl FROM domanblock WHERE galleryUrl LIKE '%"& Url &"%'")

If rs.EOF Then
	' Fanns inte med..
Else
	' Fanns med..
End If

/r: Tog bort lngDummy, eftersom jag inte kommer ihåg om den sattes till antalet påverkade rader när man körde Select...

Medlem sedan sep. 20026 425 inlägg
#14

Kod kommer INTE från mig - Engine^ förklarade ju.. :)

Medlem sedan dec. 20011 860 inlägg
#15

Tackar för alla förslag! :)

Medlem sedan sep. 20026 425 inlägg
#16

Weeee!

[offtopic]Åsa - hade du kodat alla inkluderingar på Gruvsjo.com-sajten med <!--#include file="fil.asp"--> eller med Server.Execute("fil.asp")?

Medlem sedan dec. 20011 860 inlägg
#17

Jag använde <!--#include file="fil.asp"--> . Vilket är bäst egentligen?

Medlem sedan sep. 20026 425 inlägg
#18

Server.Execute!!!
Om man kör med inkluderingar inkuderar man ju filer hela tiden, och om man kör lite mer komplicerade scripts så kan det lätt bli jobbigare med SSI. Dessutom - alla sidor inkluderas ju egentligen när en sida körs, men alla exekveras inte. Om man skrivit fel i en sida, säg /temp/online-grejor/bilder.asp och kör /temp/default.asp eller en annan fil, står det troligtvis ett felmeddelande där.

Med Server.Execute exekverar man EN sida, och inkluderar inget..

Medlem sedan dec. 20011 860 inlägg
#19

Då ska jag använda det sen. Tackar :) Tänkte inte på det.

Medlem sedan sep. 20026 425 inlägg
#20

På min förra sajt, www.dileno.cjb.net, kodade jag med SSI. Jag kom underfund med att man kunde ha ett begränsat antal includes på en sida och att Dileno. en dag kanske skulle gå över den gränsen. Jag kunde ha kodat om rubbet igen, men sajten i sig tog så lång tid att underhålla och uppdatera, så jag lade ner den..

136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)