Avatar billede cmau Nybegynder
29. september 2006 - 15:07 Der er 13 kommentarer og
1 løsning

Tjekke om variabel indeholder ordet

Hejsa

Hvordan kan jeg tjekke om en variabel med navnet $page indeholder woox.dk og hvis den gør skal den skrive ok.
Avatar billede jaw Nybegynder
29. september 2006 - 15:30 #1
Sådan f.eks.:

if(strpos($page, "woox.dk") !== false) {
  echo "ok";
}
Avatar billede cmau Nybegynder
29. september 2006 - 15:58 #2
if(strpos($page[0], "fuckingloveyou.com") !== false) {
            mysql_query("INSERT INTO reference (time,ip,agent,url,refurl,referer) VALUES ('$time','$remoteaddr','$useragent','$requesturl','$referer','$page[1]')") or die(mysql_error());
            echo 'ok<br>';
        }

Hvis jeg bruger den kode og trykker på et link til siden fra et andet domæne skriver den ikke til databasen eller ok.
Avatar billede cmau Nybegynder
29. september 2006 - 15:58 #3
Her er hele koden:

<?
$time = time();
if (!empty($_SERVER['REMOTE_ADDR'])) {
$remoteaddr = $_SERVER['REMOTE_ADDR'];
} else {
    $remoteaddr = 'Kunne ikke findes';
}
if (!empty($_SERVER['HTTP_USER_AGENT'])) {
    $useragent = $_SERVER['HTTP_USER_AGENT'];
} else {
    $useragent = 'Kunne ikke findes';
}
if (!empty($_SERVER['REQUEST_URI'])) {
    $requesturl = $_SERVER['REQUEST_URI'];
} else {
    $requesturl = 'Kunne ikke findes';
}
if (!empty($_SERVER['HTTP_REFERER'])) {
    $referer = $_SERVER['HTTP_REFERER'];
    if ( preg_match( "/http:\/\/(.*?)\//i", $referer, $page ) ) {
        if(strpos($page[0], "fuckingloveyou.com") !== false) {
            mysql_query("INSERT INTO reference (time,ip,agent,url,refurl,referer) VALUES ('$time','$remoteaddr','$useragent','$requesturl','$referer','$page[1]')") or die(mysql_error());
            echo 'ok<br>';
        }
    }
}
echo $remoteaddr.'<br>';
echo $useragent.'<br>';
echo $requesturl.'<br>';
echo $referer.'<br>';
echo $page[0].'<br>';
echo $time.'<br>';
?>

og kan ses i aktion på www.fuckingloveyou.com/site/stats.php
Avatar billede jaw Nybegynder
29. september 2006 - 16:01 #4
Det er fordi $page[0] ikke indeholder "fuckingloveyou.com".
Avatar billede cmau Nybegynder
29. september 2006 - 16:07 #5
argh hehe så ahr du misforstået den skal smide i databasen hvsi page IKKE indeholder fuckingloveyou.com
Avatar billede jaw Nybegynder
29. september 2006 - 16:08 #6
Jeg har svaret på dit spørgsmål?

Anyhoo, så prøv at udskifte !== med ===.
Avatar billede cmau Nybegynder
29. september 2006 - 16:09 #7
Sådan der :)
Avatar billede cmau Nybegynder
29. september 2006 - 16:09 #8
Hvorfor tre = ? er to ikke nok?
Avatar billede jaw Nybegynder
29. september 2006 - 16:10 #9
Nej, for du tjekker ikke på en værdi -> www.php.net/strpos
Avatar billede cmau Nybegynder
29. september 2006 - 16:12 #10
Forstod jeg ikke lige men synes da det virker med 2? Kan du evt. forklare=?
Avatar billede jaw Nybegynder
29. september 2006 - 16:12 #11
Har du læst det link jeg smed, der forklares det.
Avatar billede cmau Nybegynder
29. september 2006 - 16:15 #12
Ja, men kan ikke lige oversætte :S

// Bemærk brugen af ===. Bare == ville ikke gøre som forventet
// da positionen af 'a' var det 0. (første) tegn.
Avatar billede jaw Nybegynder
29. september 2006 - 16:27 #13
Du kunne jo afprøve deres eksempel, som de skriver:

<?php
$mystring = 'abc';
$findme  = 'a';
$pos = strpos($mystring, $findme);

// Bemærk brugen af ===. Bare == ville ikke gøre som forventet
// da positionen af 'a' var det 0. (første) tegn.
if($pos == false) {
  echo "Strengen '$findme' blev ikke fundet i strengen '$mystring'";
} else {
  echo "Strengen '$findme' blev fundet i strengen '$mystring'";
  echo " og eksisterer på positionen $pos";
}

Ovenstående fejler, da den ikke finder a i strengen ved ==, men ved === virker det. Vist nok noget med logiske værider eller noget i den stil.
Avatar billede cmau Nybegynder
30. september 2006 - 12:05 #14
Smid 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
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