Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Java][PHP]Pobieranie tego co wyświetli strona do zmiennej
Forum PHP.pl > Forum > Przedszkole
bdd
Witam, jest to mój pierwszy temat, proszę o wyrozumiałość.
Szukałem po setkach stron, być może źle szukałem ale wierzcie lub nie, próbowałem naprawdę różnych metod i kończyło się fiaskiem.

Mam dwie strony, pierwsza z nich to najprostszy AdBlock Detect:
index.php
  1. <?php
  2. require_once('functions.php');
  3. ?>
  4.  
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9.  
  10. <style type="text/css">
  11. <!--
  12. #tester {
  13. display:none;
  14. }
  15. -->
  16. </style>
  17. </head>
  18.  
  19. <body>
  20. <script type="text/javascript" src="advertisement.js"></script>
  21. <script type="text/javascript">
  22. if (document.getElementById("tester") != undefined)
  23. {
  24. document.write('0');
  25. }
  26. else
  27. {
  28. document.write('1');
  29. }
  30. </script>
  31. </body>
  32. </html>


advertisement.js
  1. document.write('<div id="tester">an advertisement</div>'); // JavaScript Document


Zasada działania prosta: jeżeli masz włączonego AdBlocka w przeglądarce, strona wyświetli 1, w przeciwnym wypadku 0.

Druga strona ma za zadanie pobrać do zmiennej (int) to co wyświetli strona pierwsza, ot cały problem. Próbowałem już curl'em lecz ta funkcja pobiera kod źródłowy strony, a przecież nie na tym mi zależy.

Jeżeli macie pomysły prosiłbym bardzo o pomoc...
lobopol
Nie rozumiem twojego problemu.
1. Aby twój skrypt wykrył adblocka user z adblockiem musi na niego wejść aby odpalił się javascript
2. Jeżeli próbujesz coś z niej pobrać curlem to nic nie dostaniesz bo on nie odpali js
3. nawet jeżeli curl odpalał by js to i tak pobrał by wartość inną niż jakby użytkownik na nią wszedł

jedyna opcja jest taka:
1. Użytkownik wchodzi na stronę ze skryptem
2. wykrywasz czy ma adblocka
3. Zapisujesz ciacho z tą informacją/przesyłasz skryptowi php ajaxem (bądź inną metodą), że użytkownik powinien mieć dopisane do sesji, że ma ab
4. strona druga sprawdza co ma w sesji/ciachu i odpowiednio reaguje
bdd
Dobrze rozumujesz, ale gdy podam na stronce drugiej:
  1. $_SESSION['adblock_detect'] = 0;
  2. include('adblockdetect.php');
  3. echo ' - TestABP: ';
  4. echo $_SESSION['adblock_detect'];



A na stronce pierwszej:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.  
  5. <head>
  6.  
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8.  
  9.  
  10.  
  11. <style type="text/css">
  12.  
  13. <!--
  14.  
  15. #tester {
  16.  
  17. display:none;
  18.  
  19. }
  20.  
  21. -->
  22.  
  23. </style>
  24.  
  25. </head>
  26.  
  27.  
  28.  
  29. <body>
  30.  
  31. <script type="text/javascript" src="advertisement.js"></script>
  32.  
  33. <script type="text/javascript">
  34.  
  35. if (document.getElementById("tester") != undefined)
  36.  
  37. {
  38.  
  39. document.write('0');
  40. <?php $_SESSION['adblock_detect'] = 0; ?>
  41. }
  42.  
  43. else
  44.  
  45. {
  46.  
  47. document.write('1');
  48. <?php $_SESSION['adblock_detect'] = 1; ?>
  49. }
  50.  
  51. </script>
  52.  
  53. </body>
  54.  
  55. </html>


Na stronce drugiej zawsze dostaję:
a ) gdy nie mam AdBlocka: 0 - TestABP: 1
b ) gdy nie mam AdBlocka: 1 - TestABP: 1
nawet gdy mam obie strony na tej samej domenie (strona druga jako index.php zaś druga jako adblockdetect.php). Gdybym mógł przechwycić do zmiennej cyfrę przed TestABP to by nie było problemu, ale nie wiem jak bo to tylko include, zaś druga wykonywana jest tak jakby cała strona adblockdetect.php była wykonywana bez js.
lobopol
Chyba nie rozumiesz jak działa php i javascript, taki zapis powoduje, że zawsze będziesz miał w sesji wartość na jeden. Nie połączysz warunków js z php w ten sposób. warunki php nie "widzą" warunków js.
bdd
Zatem podpowiedz jak mam to zrobić by nie umieszczając skryptu adblockdetect.php w stronce a jedynie korzystając z tego co on "wypluje" sprawdzić czy ktoś ma adblocka...

@edit
Albo inaczej...
Dodam ten skrypt na stronę główną ale jego odpowiedź chcę przetrzymywać w zmiennej, skoro niezależnie od warunków skryptu i tak wszystkie instrukcje php w nim zostają wykonane jak w takim razie wymusić wykonanie odpowiedniej instrukcji według warunków JS?
lobopol
Już Ci pisałem, nie dam Ci gotowego skryptu:
1. Użytkownik wchodzi na stronę ze skryptem
2. wykrywasz czy ma adblocka
3. Zapisujesz ciacho z tą informacją/przesyłasz skryptowi php ajaxem (bądź inną metodą), że użytkownik powinien mieć dopisane do sesji, że ma ab
4. strona druga sprawdza co ma w sesji/ciachu i odpowiednio reaguje
bdd
Rozumiem i dzięki za poświęcenie, ale jak widzisz jest to dział uroczo nazwany przedszkolem, a ja raczkujący nie znam funkcji jakie mam wstawić w miejsce:
  1. document.write('0');

oraz
  1. document.write('1');

abym mógł to odczytać zmienną sesyjną czy cookies'ową
bdd
Trochę zabawy miałem z ciasteczkami, jednak wszystko się wkońcu udało, dzięki wielkie za pomoc lobopol smile.gif

@Temat do zamknięcia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.