if adblock( call php function )

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom aan t Goor

Tom aan t Goor

11/01/2013 11:52:21
Quote Anchor link
Ik wil dat als adblock aanstaat dat er dan een php functie wordt uitgevoerd.
Namelijk de functie func_adblock("1");

Nu heb ik dit script gevonden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
function detectAdBlock()
{
     if (~(document.getElementsByClassName('advertentie')[0].css.height) == 0) {
           alert('AdBlock staat ingeschakeld!');
     }
}
window.onload = detectAdBlock;


Maar nu wil ik dus die alert vervangen door die php functie.
Maar het probleem is dat je hier gaan php functies kan aanroepen.

Heeft iemand enig idee hoe ik dit kan gaan doen?
 
PHP hulp

PHP hulp

05/02/2023 04:44:16
 
No One

No One

11/01/2013 11:56:28
Quote Anchor link
wat wil je precies doen dan?? wat doet de func_adblock("1") precies?

ik zou iig gaan voor javascript icm ajax..
 
- Ariën  -
Beheerder

- Ariën -

11/01/2013 12:01:23
Quote Anchor link
Dan moet je AJAX gebruiken, maar wat doet die PHP-functie dan? Ik kan geen reden bedenken waarom je er PHP zou bij willen betrekken, gezien het wenselijk is om iets visueels te willen doen.....

En dat kan prima met HTML, JS en CSS
 
Tom aan t Goor

Tom aan t Goor

11/01/2013 12:04:19
Quote Anchor link
Ik wil namelijk als adblock aanstaat iets opslaan en laden uit de database.
En aangezien ik niet denk dat dat kan met ajax/js zoek ik een andere oplossing.
 
No One

No One

11/01/2013 12:16:23
Quote Anchor link
jawel, dat kan wel met ajax...deze functie detecteerd dat addblock aanstaat, verstuurt via een ajaxcall een request naar de pagina waar jij iets opslaat en laad uit de database.
 
- Ariën  -
Beheerder

- Ariën -

11/01/2013 12:33:07
Quote Anchor link
Wat wil je precies dan laden? Je zou die data ook statisch in een JS var kunnen plaatsen.
 
Kris Peeters

Kris Peeters

11/01/2013 13:23:04
Quote Anchor link
Tom Tom op 11/01/2013 12:04:19:
...En aangezien ik niet denk dat dat kan met ajax...


Hoe kom je daarbij?
Dit is precies wat Ajax doet: je laat javascript contact nemen met de server, zonder dat de gebruiker daar iets van merkt.
Wat je dan op de server doet, kies je zelf.
 
Tom aan t Goor

Tom aan t Goor

11/01/2013 14:22:34
Quote Anchor link
Kris Peeters op 11/01/2013 13:23:04:
Tom Tom op 11/01/2013 12:04:19:
...En aangezien ik niet denk dat dat kan met ajax...


Hoe kom je daarbij?
Dit is precies wat Ajax doet: je laat javascript contact nemen met de server, zonder dat de gebruiker daar iets van merkt.
Wat je dan op de server doet, kies je zelf.



Kan je me hier een voorbeeld van geven?
Ik heb namelijk nooit met AJAX gewerkt.
 
Kris Peeters

Kris Peeters

11/01/2013 14:46:26
Quote Anchor link
Ja zeker.

Voeg dit toe aan je html (dit laadt jQuery), bij voorbeeld binnen <head>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

Sowieso moet die lijn hoger in de code staan dan jouw stuk javascript.


en dan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
...
if (~(document.getElementsByClassName('advertentie')[0].css.height) == 0) {
    $.ajax({
      url: 'test.php',
      success: function(responseText) {
        alert(responseText);
      }
    });
}
...



test.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Hello World!';  // wat je hier echo't, wordt teruggegeven aan javascript (en komt in dit geval in de alert)
?>
Gewijzigd op 11/01/2013 14:48:59 door Kris Peeters
 
Tom aan t Goor

Tom aan t Goor

12/01/2013 19:04:59
Quote Anchor link
Ik heb de volgende code, maar er gebeurt totaal niks, (behalve dat de advertentie wordt geblokkeerd door adblock).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
if (~(document.getElementsByClassName('advertentie')[0].css.height) == 0) {
           document.write("<font color=\"#FF0000\"><b>Adblock staat aan!</b></font>");
     }
</script>
<?php
echo '<form method="post">
<table width="100%">
<tr>
<td class="advertentie" name="advertentie">
Reclame
</td>
</tr>
</table>
</form>'
;
?>
 
- Ariën  -
Beheerder

- Ariën -

12/01/2013 22:16:24
Quote Anchor link
Kunnen we ergens testen?
 
Tom aan t Goor

Tom aan t Goor

12/01/2013 22:57:48
Quote Anchor link
- Aar - op 12/01/2013 22:16:24:
Kunnen we ergens testen?



Ik heb hem hier online staan:
http://tom-webs.nl/testpagina/adblock.php
 
- Ariën  -
Beheerder

- Ariën -

12/01/2013 23:19:10
Quote Anchor link
en je ajax request?
 
Jurgen B

Jurgen B

12/01/2013 23:31:56
Quote Anchor link
Het is .style.height
Ik weet niet of die alleen geset wordt met adblock (heb ik er niet op staan) want standaard heeft dat element geen height.
 
Tom aan t Goor

Tom aan t Goor

12/01/2013 23:36:08
Quote Anchor link
Sorry, ik heb nog nooit eerder met ajax gewerkt dus weet niet precies hoe het moet, ik heb het iets veranderd, maar het werkt nog steeds niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
if (~(document.getElementsByClassName('advertentie')[0].css.height) == 0) {
    $.ajax({
      success: function(responseText) {
        document.write("<font color=\"#FF0000\"><b>Adblock staat aan!</b></font>");
      }
    });
}
</script>
<?php
echo '<form method="post">
<table width="100%">
<tr>
<td class="advertentie" name="advertentie">
Reclame
</td>
</tr>
</table>
</form>'
;
?>
 
Jurgen B

Jurgen B

13/01/2013 12:18:14
Quote Anchor link
Een paar dingen:

- Verplaats je Javascript naar het einde van de pagina (iig onder je advertentie) of doe een onLoad check.
- Adblock doet niet de style.height aanpassen maar de clientHeight:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<?php
echo '<form method="post">
<table width="100%">
<tr>
<td class="advertentie" name="advertentie">
Reclame
</td>
</tr>
</table>
</form>'
;
?>


<script type="text/javascript">
if (document.getElementsByClassName('advertentie')[0].clientHeight == 0) {
    alert('Advert blocked!');
    // Wat te doen als de advertentie geblocked is?
}
</script>


Edit: ik zie dat je originele script dit bij onload via een functie aanroept. De check die iig moet gebeuren is de .clientHeight == 0, niets meer niets minder.
Gewijzigd op 13/01/2013 12:20:36 door Jurgen B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.