Avatar billede ponylover Nybegynder
03. november 2005 - 09:35 Der er 14 kommentarer

Samme random tal for en bruger

Er der nogen som kan hjælpe mig med det?

<?
include("connect.php");
# Tæller 1 op i besøgs tælleren
session_start();
if(!isset($_SESSION["visitcounter"]) || $_SESSION["visitcounter"] != 1)
{
    $count = mysql_query("UPDATE visitcounter SET count=count+1 WHERE name='Visitcounter'");
    $_SESSION["visitcounter"] = 1;
}


$random = rand(1,5);
$randomSide;
switch($random)
{
  case 1:
        $randomSide = "http://www.foetex.dk";
        break;

    case 2:
        $randomSide = "http://www.jubii.dk";
        break;

  case 3:
        $randomSide = "http://www.google.dk";
        break;

    case 4:
        $randomSide = "http://www.payload.dk";
        break;

  case 5:
        $randomSide = "http://www.dba.dk";
        break;

  default:
        $randomSide = "http://www.bilka.dk";
}

#Tjekker antal besøg og omdirrigere hvis nødvendigt
$visits = mysql_result(mysql_query("SELECT count FROM visitcounter WHERE name='Visitcounter'"),0);
if($visits%5 == 0)
{
    header("location: " . $randomSide);   
}
else
{
    header("location: her.htm");   
}
?>
Avatar billede wuggawugga Nybegynder
03. november 2005 - 09:48 #1
Du kunne f.eks. bruge et tal fra brugerens ip-adresse i stedet for $random. Eller fra session_id() eller brugernavn hvis du har et login system.
Avatar billede ponylover Nybegynder
03. november 2005 - 09:52 #2
Jeg mangler ikke en måde at tælle brugeren på. Jeg skal bare ændre på denne kode, så den laver et nyt id hvergang han åbner siden.
Avatar billede barklund Nybegynder
03. november 2005 - 10:57 #3
Så skal det jo ikke være random? Eller, det skal i hvert fald være en betinget tilfældig. Du kan jo i databasen skrive hvilken side, han fik sidst, og så sørge for, at han ikke får den igen.

Dog er dit spørgsmål stadig ikke helt klart - prøv at komme med et eksempel :)
Avatar billede ponylover Nybegynder
03. november 2005 - 11:20 #4
Det skal være sådan at hvis du f.eks. er gæst nr. 4 skal du sendes videre til header("location: her.htm"); - og hvis du er nr. 5 skal du videre til en af de 5 random sider. Men hvis gæst nr. 5 reloader sin browser eller åbner siden igen skal han tælles som nr. 6
Avatar billede ponylover Nybegynder
03. november 2005 - 11:21 #5
Lige nu skal man lukke sin browser med før det sker....
Avatar billede barklund Nybegynder
03. november 2005 - 12:08 #6
Lad være med at tracke session? Hvis man bare skal reloade, så skal du jo slet ikke bruge session til noget. Fjern $_SESSION-ting samt session_start helt.
Avatar billede wuggawugga Nybegynder
03. november 2005 - 13:13 #7
Problemet er dette:

if(!isset($_SESSION["visitcounter"]) || $_SESSION["visitcounter"] != 1)
{
    $count = mysql_query("UPDATE visitcounter SET count=count+1 WHERE name='Visitcounter'");
    $_SESSION["visitcounter"] = 1;
}

visitcounter bliver kun opdateret en gang pr session, og det er denne opdatering som den senere redirect afhænger af. Enten skal du fjerne din if-statement, eller som barklund foreslår, helt droppe brugen af sessions i denne forbindelse.
Avatar billede ponylover Nybegynder
03. november 2005 - 16:36 #8
Hvis jeg gør det, så kan gæst nr. 5 surfe rundt på alle random siderne, det må han ikke. Det skal være sådan at han kan se dem, og og når han så kommer ind på siden igen, skal han tælle som gæst nr. 6
Avatar billede barklund Nybegynder
03. november 2005 - 16:39 #9
Det forstår jeg ikke? Hvis du fjerner session, så tæller en 1 op hver gang en bruger kigger på siden. Så hvis jeg kigger på den 4 gange i træk, så tæller den 4 op. Er det ikke meningen?
Avatar billede ponylover Nybegynder
03. november 2005 - 16:42 #10
<?
include("connect.php");
# Tæller 1 op i besøgs tælleren

$random = rand(1,5);
$randomSide;
switch($random)
{
  case 1:
        $randomSide = "http://www.foetex.dk";
        break;

    case 2:
        $randomSide = "http://www.jubii.dk";
        break;

  case 3:
        $randomSide = "http://www.google.dk";
        break;

    case 4:
        $randomSide = "http://www.payload.dk";
        break;

  case 5:
        $randomSide = "http://www.dba.dk";
        break;

  default:
        $randomSide = "http://www.bilka.dk";
}

#Tjekker antal besøg og omdirrigere hvis nødvendigt
$visits = mysql_result(mysql_query("SELECT count FROM visitcounter WHERE name='Visitcounter'"),0);
if($visits%5 == 0)
{
    header("location: " . $randomSide);   
}
else
{
    header("location: her.htm");   
}
?>

Du vil have koden skal se sådan her ud ikke?
Avatar billede barklund Nybegynder
03. november 2005 - 16:46 #11
Det ved jeg ikke - i ovenstående opdaterer du jo aldrig count vel? Du skal fortælle, hvad du vil - så kan jeg måske fortælle, hvordan scriptet skal se ud :)
Avatar billede ponylover Nybegynder
03. november 2005 - 16:49 #12
Det skal være sådan at hvis du f.eks. er gæst nr. 4, så skal du bare sendes til header("location: her.htm"); - Men hvis du er gæst nr. 5 skal du sendes videre til header("location: " . $randomSide); - Problemet lige nu er bare det at når gæst nr. 5 f.eks. reloader siden eller kommer ind på den igen, så er han stadig gæst nr. 5.

Det er der fejlen ligger han skal nemlig tælles som nr. 6 når han reloader eller trykker igen.
Avatar billede barklund Nybegynder
03. november 2005 - 16:59 #13
Så skal du vel bare erstatte:

# Tæller 1 op i besøgs tælleren
session_start();
if(!isset($_SESSION["visitcounter"]) || $_SESSION["visitcounter"] != 1)
{
    $count = mysql_query("UPDATE visitcounter SET count=count+1 WHERE name='Visitcounter'");
    $_SESSION["visitcounter"] = 1;
}


Med:

# Tæller 1 op i besøgs tælleren
$count = mysql_query("UPDATE visitcounter SET count=count+1 WHERE name='Visitcounter'");

Eller er jeg helt galt på den?

--
Morten Barklund
Avatar billede ponylover Nybegynder
03. november 2005 - 17:03 #14
Tak! kigger lige på det... :D
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