probleme detection Adblock en Javascript+PHP tourne pas rond

probleme detection Adblock en Javascript+PHP tourne pas rond - PHP - Programmation

Marsh Posté le 29-11-2016 à 15:13:36    

Problème de détection d'Adblock
 
J'appelle au début de la page ceci:

Code :
  1. document.write('<div id="TestAdBlock" style="display:none;">une pub</div>');


Ensuite dans le corps de la page j'ai ceci:

Code :
  1. <script type="text/javascript">
  2. if (document.getElementById('TestAdBlock') == null)
  3. {
  4. alert('Désactivez AdBlock !');
  5. document.write('<?php include "avecbloqueur.php"; ?>')
  6. }
  7. if (document.getElementById('TestAdBlock') != null)
  8. {
  9. alert('Merci AdBlock !');
  10. document.write('<?php include "sansbloqueur.php"; ?>')
  11. }


avecbloqueur.php

Code :
  1. <?php
  2. $compteur_f = fopen('bloqueur.txt','a+');
  3. fwrite($compteur_f, "AVEC\r\n" );
  4. ?>


sansbloqueur.php

Code :
  1. <?php
  2. $compteur_f = fopen('bloqueur.txt','a+');
  3. fwrite($compteur_f, "SANS\r\n" );
  4. ?>


Le code alert fonctionne bien, à savoir que  
  si j'ai Adblock il affiche : Désactivez AdBlock
  dans le cas contraire, il affiche Merci AdBlock
précision: il affiche l'un ou l'autre... Ce qui est normal, non ?
PROBLEME:
 
bloqueur.txt

Code :
  1. AVEC
  2. SANS
  3. AVEC
  4. SANS
  5. AVEC
  6. SANS......


Les deux PHP sont appelés, quel que soit le cas de figure alors qu'un seul alert javascript est lancé.
Là, je capte pas...
L'idée est juste de faire une stat sur l'utilisation de Adblock


---------------
http://www.ypikay.com
Reply

Marsh Posté le 29-11-2016 à 15:13:36   

Reply

Marsh Posté le 29-11-2016 à 18:26:46    

Bonjour,
 
Revoir les notions de base serveur-client, ici tu mélanges du code exécuté côté client et exécuté côté serveur en pensant que les deux se font en même temps.
 
Ici tu appelles tout d'abord un script PHP exécuté côté serveur, qui retournes du javascript qui est ensuite exécuté côté client. Tu ne peux donc pas attendre une valeur de retour du javascript pour exécuter de nouveau du PHP puisqu'il a déjà été exécuté.


Message édité par MaybeEijOrNot le 29-11-2016 à 18:27:20

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 29-11-2016 à 20:55:52    

Merci mais justement comment puis je faire ? je voudrais arriver à différencier une session ouverte avec Adblock d'une ouverte sans Adblock mais j'ai l'impression qu'on ne peut passer que par JS qui s’exécute coté client.
J'ai besoin d'une trace coté serveur mais je n'y parviens pas...


---------------
http://www.ypikay.com
Reply

Marsh Posté le 29-11-2016 à 21:23:24    

Etant donné que le blocage se situe coté JS, tu peux en effet oublier la partie PHP.
Au chargement de la page (onLoad), tu peux essayer de déclencher avec du retard (setTimeout) une fonction qui récup un div que tu sais qui va être bloqué. Si celui-ci n'existe pas ou est devenu invisible, tu peux charger (via ajax, redirection, etc...) le texte/page que tu veux.
A tester.
 
Des idées : http://stackoverflow.com/questions [...] my-website


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 29-11-2016 à 21:43:59    

Ah oui c'est une idée à creuser merci, je teste demain et je vous tiens au courant !


---------------
http://www.ypikay.com
Reply

Marsh Posté le 30-11-2016 à 09:59:54    

La détection va forcément se faire par du Javascript. Après, soit une redirection vers une page en fonction du résultat de détection, soit du ajax qui va envoyer au serveur (et donc à PHP) le résultat de la détection et dans ce cas, PHP pourra faire afficher la page qui va bien ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed