Avatar billede jmc Nybegynder
04. november 2004 - 19:38 Der er 7 kommentarer og
1 løsning

hvorfor virker følgende script ikke?

<%On Error Resume Next
'**
'*    A List Apart - The Perfect 404
'*        http://alistapart.com/articles/perfect404/
'*
'*    Original Author    : Ian Lloyd (Javascript)
'*    Modified by    : Andrew Waer (PHP)
'*    Rewritten by    : Ed Knittel (ASP)
'*    Last Modified    : 01-28-2004
'*   
'*    Basically just an ASP conversion of Andrew's PHP script from Ian's Javascript
'*    With some extras
'**

Dim strReferer
strReferer = LCase(Request.ServerVariables("HTTP_REFERER"))
strURL = LCase(Request.ServerVariables("QUERY_STRING"))
blnSearchReferral = False
blnInsiteReferral = False
'strError = "404"
strSite = ""

If Len(strReferer)<>0 Then
    'We have been referred to this page some another web page ...
    If (InStr(1,strReferer,".looksmart.co") > 0) OR (InStr(1,strReferer,".ifind.freeserve") > 0) OR (InStr(1,strReferer,".ask.co") > 0) OR (InStr(1,strReferer,"google.co") > 0) OR (InStr(1,strReferer,"altavista.co") > 0) OR (InStr(1,strReferer,"msn.co") > 0) OR (InStr(1,strReferer,"hotbot.co") > 0) OR (InStr(1,strReferer,"yahoo.co") > 0) Then
        'we have been referred to from a known search engine
        blnSearchReferral = True
        arrSite = Split(strReferer,"/")
        arrParams = Split(strReferer,"?")
        strSearchTerms = arrParams(1)
        arrParams = Split(strSearchTerms,"&")
        strSite = arrSite(2)
        sQryStr = ""
       
        ' Define what search terms are in use
        ' Be sure to Dim the array length appropriately
        Dim arrQueryStrings(4)
        arrQueryStrings(0) = "q="    //google, altavista, msn
        arrQueryStrings(1) = "p="    //yahoo
        arrQueryStrings(2) = "ask="    //ask jeeves
        arrQueryStrings(3) = "qt="    //looksmart
        arrQueryStrings(4) = "query="    //hotbot
       
        Dim i,q
        For i=0 To UBound(arrParams)
            'loop through all the parameters in the referring page's URL
            For q=0 To UBound(arrQueryStrings)
                sQryStr = arrQueryStrings(q)
                If (InStr(1,arrParams(i),sQryStr)) Then
                    'we've found a search term!
                    strSearchTerms2 = Split(strSearchTerms,sQryStr)
                    strSearchTerms = strSearchTerms2(1)
                    strSearchTerms = Replace(strSearchTerms,"+"," ")
                End If
            Next
        Next
        'strSite
        'strReferer
        Response.Write "Du søgte efter" & strSearchTerms & "<br>"
        end if
        end if%>
Avatar billede jmc Nybegynder
04. november 2004 - 19:58 #1
denne her fejler også hos mig:
if (strReferrer.length!=0)
  {
  if ((strReferrer.indexOf(".looksmart.co")>0)||
  (strReferrer.indexOf(".ifind.freeserve")>0)||
  (strReferrer.indexOf(".ask.co")>0)||
  (strReferrer.indexOf("google.co")>0)||
  (strReferrer.indexOf("altavista.co")>0)||
  (strReferrer.indexOf("msn.co")>0)||
  (strReferrer.indexOf("yahoo.co")>0))
  {
  blnSearchReferral=true;
  //get site domain — split at the first forward-slash
  var arrSite=strReferrer.split("/");
  // now find search parameters
  var arrParams=strReferrer.split("?");
  var strSearchTerms = arrParams[1];
  arrParams=strSearchTerms.split("&");
 
  strSite=arrSite[2];
  var sQryStr="";
 
  //define what search terms are in use by the »
  different engines
  var arrQueryStrings = new Array();
  arrQueryStrings[0]="q=";  //google, altavista, msn
  arrQueryStrings[1]="p=";  //yahoo
  arrQueryStrings[2]="ask=";  //ask jeeves
  arrQueryStrings[3]="key=";  //looksmart
 
  for (i=0;i<arrParams.length;i++)
  //loop through all the parameters in the referring »
  page’s URL
    {
    for (q=0;q<arrQueryStrings.length;q++)
    {
    sQryStr = arrQueryStrings[q];
    if (arrParams[i].indexOf(sQryStr)==0)
      {//we’ve found a search term!
      strSearchTerms = arrParams[i];
      strSearchTerms = strSearchTerms.split(sQryStr);
      strSearchTerms = strSearchTerms[1];
      strSearchTerms = strSearchTerms.replace("+", " ");
      }
    }
    }
  //Tell the visitor what site is at fault, what the
  //search terms were
  document.write ("<p>You did a search on <strong> »
    <a href='" + strReferrer + "' target='_blank'>" + »
    strSite + "<\/a> <\/strong> for \"<strong>"»
    + strSearchTerms + "<\/strong>\". However, »
    their index appears to be out of date.<\/p> »
    <h2>All is not lost!<\/h2><p>We think that the »
    following page(s)on our site will be able to help »
    you:<\/p>");
Avatar billede jmc Nybegynder
04. november 2004 - 20:12 #2
jeg ønsker kun at gentage det som folk søger efter på min egen side....
Avatar billede cpufan Juniormester
04. november 2004 - 21:13 #3
referer kan være tom
dvs den kan være null
så du skal først teste på om den forskellig fra null
Avatar billede cpufan Juniormester
04. november 2004 - 21:17 #4
If strReferer <> "" Then
Avatar billede jmc Nybegynder
04. november 2004 - 22:36 #5
Det er vel det samme som jeg gør:
If Len(strReferer)<>0 Then
Avatar billede cpufan Juniormester
04. november 2004 - 22:40 #6
du kan ikke måle længden på noget der ikke er der,
og længden vil derfor heller ikke være 0
med If strReferer <> "" Then
tester du bare på om den er der
Avatar billede jmc Nybegynder
07. december 2004 - 10:39 #7
point?
Avatar billede cpufan Juniormester
07. december 2004 - 10:58 #8
svar
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