Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przekierowanie użytkownika na różne strony w zależności od ilości wizyt
mzk23
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.01.2010

Ostrzeżenie: (0%)
-----


Witajcie,

niestety jestem PHP newbie i nie do końca jestem w stanie zmodyfikować prostego skryptu:

  1. if(! isset($_COOKIE["ProfileVisitCount"])){
  2. setcookie("ProfileVisitCount", "1", time()+3600);
  3. }
  4.  
  5. if($_COOKIE["ProfileVisitCount"] > 5){
  6. header("Location: httx://domain.com/signup");
  7. exit();
  8. }
  9. else {
  10. setcookie("ProfileVisitCount", ($_COOKIE["ProfileVisitCount"] + 1), time()+3600);
  11. }


Powyższy kod przekierowuje użytkownika na inną stronę, po odwiedzeniu jej powyżej 5 razy (na postawie ciasteczka). Za to ja chciałbym przekierowywać użytkowników już od pierwszego razu tj.
-użytkownik trafia na stronę po raz pierwszy: redirect na strona1.pl
-użytkownik trafia na stronę po raz trzeci: redirect na strona2.pl
-użytkownik trafia na stronę po raz piąty: redirect na strona3.pl
itd.

PS. czy w tym skrypcie ważność ciasteczka to 1 godzina?

Będę bardzo wdzięczny za pomoc.
Pozdrawiam

Ten post edytował mzk23 4.11.2016, 11:50:36
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


setcookie() będzie aktualizować ci ilość wejść, więc w takim razie powinien wykonywać się za każdym razem po wejściu na stronę.

header() wysyła nagłówki, także z przekierowaniem np. header("Location: http://strona1.pl");

Więc wystarczy ustalić sobie warunki:

if(count == 1) ;//dla strony 1
elseif(count <= 3) ; // dla strony 2
else ; //dla pozostałych stron.

To tak skrótowo.

A co do czasu, to TIME()+3600 przesuwa wskaźnik ważności ciasteczka o godzinę. Czyli po godzinie licznik liczyłby od nowa.
Go to the top of the page
+Quote Post
Niree
post
Post #3





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


Dokładnie tak jak wyżej kolega napisał. Niepotrzebnie ustalasz ważność ciasteczka. Jeżeli użytkownik bedzie chciał, to i tak usunie ciasteczko ręcznie i zacznie się naliczać od nowa.
No chyba, że chcesz naliczyć, ile razy wszedł na stronę w ciągu ostatnich ilus godzin.

W każdym razie:

index.php
  1. <?php
  2. if(isset($_COOKIE['ProfileVisitCount']))
  3. {
  4. setcookie('ProfileVisitCount', ''.$_COOKIE['ProfileVisitCount'].''+1);
  5. if($_COOKIE["ProfileVisitCount"] >= 1 && $_COOKIE["ProfileVisitCount"] <= 2){
  6. header("Location: Location: httx://domain.com/signup po 1-2 wejsciu"); //przekieruje, gdy uzytkownik trafi na strone po raz 1-2
  7. }
  8. else if($_COOKIE["ProfileVisitCount"] >= 3 && $_COOKIE["ProfileVisitCount"] <= 4){
  9. header("Location: Location: httx://domain.com/signup po 3-4 wejsciu"); //przekieruje, gdy uzytkownik trafi na strone po raz 3-4
  10. }
  11. else if($_COOKIE["ProfileVisitCount"] >= 5 && $_COOKIE["ProfileVisitCount"] <= 6){
  12. header("Location: Location: httx://domain.com/signup po 5-6 wejsciu"); //przekieruje, gdy uzytkownik trafi na strone po raz 5-6
  13. }
  14. }
  15. else
  16. {
  17. setcookie('ProfileVisitCount', '1');
  18. }
  19. ?>


Ten post edytował Niree 5.11.2016, 16:52:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 10:59