Avatar billede spidr Nybegynder
24. januar 2005 - 16:19 Der er 11 kommentarer og
1 løsning

Ignorere string

Kan jeg på nogen måde få nedenstående script (der finder ser hvem der linker til min side) til at ignorere alle sider der starter med goog.dk?
således at jeg kun får andre der henviser til min side??

$forrige_side = $_SERVER[HTTP_REFERER];

if(isset($forrige_side)) {

if ( preg_match( "/http:\/\/(.*?)\//i", $forrige_side, $hoved_side ) )
{

mysql_query("INSERT INTO reference (forrige_side,hoved_side) VALUES ('$forrige_side','$hoved_side[1]')") or die(mysql_error());

}
}
Avatar billede danino Nybegynder
24. januar 2005 - 16:22 #1
forrige_side = $_SERVER[HTTP_REFERER];

if(isset($forrige_side)) {

if ( preg_match( "/http:\/\/(.*?)\//i", $forrige_side, $hoved_side ) )
{
    if(strpos($forrige_side, "goog.dk") === false){
mysql_query("INSERT INTO reference (forrige_side,hoved_side) VALUES ('$forrige_side','$hoved_side[1]')") or die(mysql_error());
}
}
}
Avatar billede hmortensen Nybegynder
24. januar 2005 - 16:26 #2
Og så lige bytte om på dem, da der ikke er nogen grund til at køre en reg exp hvis strengen indeholder 'goog.dk'.

forrige_side = $_SERVER[HTTP_REFERER];

if(isset($forrige_side))
{
  if(!strpos($forrige_side, "goog.dk"))
  {
    if ( preg_match( "/http:\/\/(.*?)\//i", $forrige_side, $hoved_side ) )
    {
      mysql_query("INSERT INTO reference (forrige_side,hoved_side) VALUES ('$forrige_side','$hoved_side[1]')") or die(mysql_error());
    }
  }
}
Avatar billede spidr Nybegynder
24. januar 2005 - 16:27 #3
Parse error: parse error, unexpected '=' in /customers/goog.dk/goog.dk/httpd.www/stat.php on line 55
Avatar billede danino Nybegynder
24. januar 2005 - 16:28 #4
Den er ikke helt rigtig hmortensen... men nu skulle den være
forrige_side = $_SERVER[HTTP_REFERER];

if(isset($forrige_side))
{
  if(strpos($forrige_side, "goog.dk") === false)
  {
    if ( preg_match( "/http:\/\/(.*?)\//i", $forrige_side, $hoved_side ) )
    {
      mysql_query("INSERT INTO reference (forrige_side,hoved_side) VALUES ('$forrige_side','$hoved_side[1]')") or die(mysql_error());
    }
  }
}
Avatar billede danino Nybegynder
24. januar 2005 - 16:29 #5
Hov... Sådan

$forrige_side = $_SERVER[HTTP_REFERER];

if(isset($forrige_side))
{
  if(strpos($forrige_side, "goog.dk") === false)
  {
    if ( preg_match( "/http:\/\/(.*?)\//i", $forrige_side, $hoved_side ) )
    {
      mysql_query("INSERT INTO reference (forrige_side,hoved_side) VALUES ('$forrige_side','$hoved_side[1]')") or die(mysql_error());
    }
  }
}
Avatar billede hmortensen Nybegynder
24. januar 2005 - 16:32 #6
Hvad er der forkert her:
if(!strpos($forrige_side, "goog.dk"))
???
Avatar billede danino Nybegynder
24. januar 2005 - 16:34 #7
Det er fordi at hvis goog.dk bliver fundet på første plads i $forrige_side, vil strpos returnere 0, og derfor vil din if blive sand alligevel... === sikrer at både værdien og typen på de to variable er sammenlignes er ens. I dette tilfælde vil if så kun blive sand, hvis strpos returnerer false, hvilket er tilfældet, når goog.dk ikke findes i $forrige_side..

Derfor ;)
Avatar billede spidr Nybegynder
24. januar 2005 - 16:35 #8
Så virker det, tusind tak :)
Avatar billede danino Nybegynder
24. januar 2005 - 16:35 #9
"er sammenlignes" skulle selvfølgelig være "der sammenlignes"
Avatar billede hmortensen Nybegynder
24. januar 2005 - 16:36 #10
Vil hellere aldrig ske fra en http_referer...
Avatar billede spidr Nybegynder
24. januar 2005 - 16:37 #11
tusind, tak, dejligt at få noget support der virkelig kan bruges :)
Avatar billede danino Nybegynder
24. januar 2005 - 16:39 #12
hmortensen>>Det er rigtigt... Men det er jo for en god ordens skyld... Den syntaks jeg foreslår kan jo bruges i alle situationer... :)

spidr>>Tak for points...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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