webForumDet fria alternativet

Instr??

21 svar · 484 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#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%>
crisse6Medlem sedan dec. 20002 526 inlägg
#2

Vad far du for felmess?

AsaMedlem 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?

Engine^Medlem sedan dec. 20003 887 inlägg
#4
If Not InStr(Url, Doman("galleryUrl")) = 0 Then
AsaMedlem 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?

Engine^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
AsaMedlem sedan dec. 20011 860 inlägg
#7

Tackar. FUnkar bra nu!

PalleMedlem 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]
m_soderlundMedlem 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

AsaMedlem 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?

m_soderlundMedlem sedan sep. 20026 425 inlägg
#11

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

AsaMedlem sedan dec. 20011 860 inlägg
#12

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

Engine^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...

m_soderlundMedlem sedan sep. 20026 425 inlägg
#14

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

AsaMedlem sedan dec. 20011 860 inlägg
#15

Tackar för alla förslag! :)

m_soderlundMedlem 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")?

AsaMedlem sedan dec. 20011 860 inlägg
#17

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

m_soderlundMedlem 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..

AsaMedlem sedan dec. 20011 860 inlägg
#19

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

m_soderlundMedlem 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..

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