8768 sujets

Développement web côté serveur, CMS

Bonjour,
Je souhaite créer un script qui n'affiche pas la version responsive de mon site aux utilisateurs Orange.
Ci-dessous, le code qui m'a été fourni et qui permet de savoir si l’internaute est Orange ou non.

<?php

$is_orange = false;

if (preg_match('`wanadoo\.fr`',gethostbyaddr($_SERVER['REMOTE_ADDR'])))

$is_orange = true;

?>


Voici ce que je pensais faire. Si l'utilisateur Orange = false, alors j'affiche la meta qui rend le site responsive. Voir ci-dessous. Sinon, echo rien du tout.

<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' />


Je pense que c'est une solution viable, qu'en pensez vous ?

Problème je suis pas bon en php malheureusement, je ne sais pas trop comment le mettre en place sans faire de bétise. Merci pour votre aide
A+
Bonjour,

Par curiosité, pourquoi ?

En théorie il suffit de retirer la meta viewport effectivement du coup les media queries ne seront plus prises en compte. Par contre j'ai un gros doute sur le fait que tu puisses détecter ça.
Merci de participer à la non-neutralité du net.

Tu as une raison spécifique de vouloir embêter les utilisateurs de ce FAI?

La méthode que tu montres ici ne fonctionnera pas. Pour bloquer du contenu a des personnes d'un certain FAI, il faut pouvoir déterminer à partir de l'IP de l'internaute par quel FAI celle-ci est attribuée.
Stéphanie W. a écrit :
Bonjour,

Par curiosité, pourquoi ?

En théorie il suffit de retirer la meta viewport effectivement du coup les media queries ne seront plus prises en compte. Par contre j'ai un gros doute sur le fait que tu puisses détecter ça.


J'utilise un script spécifique pour les utilisateurs orange, qui ne s'affiche pas bien sur la version responsive des utilisateurs Orange. Du coup, il faut que je désactive les medias queries pour ces utilisateurs orange.

Mais je ne sais pas comment faire cette conditions afin que je puisse simplement enlever ou rajouter cette meta viewport.
merci
edenpulse a écrit :
Merci de participer à la non-neutralité du net.

Tu as une raison spécifique de vouloir embêter les utilisateurs de ce FAI?

La méthode que tu montres ici ne fonctionnera pas. Pour bloquer du contenu a des personnes d'un certain FAI, il faut pouvoir déterminer à partir de l'IP de l'internaute par quel FAI celle-ci est attribuée.


Je ne veux pas les embêter, bien au contraire, je souhaite leur afficher le site en non responsive, car avec le responsive, le script que je dois afficher, ne fonctionne pas et casse le responsive design. Du coup illisible.
C'est le script que l'on m'a donné pourtant, bizarre.
Je suis pas assez callée pour t'aider sur le PHP, juste sur le RWD, mais un truc genre :

$is_orange = false;
=>> afficher la viewport ?


Qui permettrait d'afficher la meta pour tout le non orange (pour peu que ta détection fonctionne, mais je suis pas sûre)

Bon, par contre, tu m'intrigues Smiley lol Parce qu'un script qui ne fonctionne pas chez un opérateur j'ai jamais vu ça, du coup j'ai envie de comprendre comment c'est techniquement possible. Est-ce que le FAI orange bloque ton script (du coup ça m'intrigue encore plus, il fait quoi ce script?).
Ou est-ce que tu as testé sur un téléphone "orange" (aka un android vendu par orange) et tu t'es rendu compte que ça merde ? Du coup le souci c'est peut-être pas tant le FAI que cette version de chrome.
Il se passe quoi si ton utilisateur orange passe son tel en wifi sur un réseau non orange, ça fonctionne ?

Perso je suis chez Sosh, du coup je sais pas trop si ça merde chez Sosh aussi mais si tu as une page de test je veux bien aller y jeter un oeil pour mieux comprendre Smiley smile
Modifié par Stéphanie W. (21 May 2015 - 09:55)
Mes excuses pour ma réponse vindicative du coup.

Par curiosité, que fait le script ? Récupère-t-il des données de sites absents d'un DNS d'orange peut-être ?
dreadstock a écrit :

J'utilise un script spécifique pour les utilisateurs orange, qui ne s'affiche pas bien sur la version responsive des utilisateurs Orange.


C'est quoi ce script ?
Tu as les bouts de code necessaires dans ta question.
Assemblés ça donne ça :

<?php if (!preg_match('`wanadoo\.fr`',gethostbyaddr($_SERVER['REMOTE_ADDR']))): ?>
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' />
<?php endif; ?>

En gros tu prends l'adresse IP, tu regardes le nom associé (hostname), puis tu regardes si ce hostname contient "wanadoo.fr", et si ce n'est pas le cas, tu affiche la balise meta.

Par contre comme les autres je ne pense pas que ça soit la bonne solution à ton problème. Il faudrait mieux trouver ce qui cloche dans ton JS, et/ou palier à ça en JS + CSS (overflow: hidden ?)

Quelques remarques :
-> pas besoin de geoip avec gethostbyaddr (mais cette recherche inverse de DNS va peut-être ralentir l'affichage de ta page...)
-> Je ne sais pas si rechercher "wanadoo.fr" est encore d'actualité et s'il ne faudrait pas rechercher "orange.fr" ?
zemax a écrit :

-&gt; pas besoin de geoip avec gethostbyaddr (mais cette recherche inverse de DNS va peut-être ralentir l'affichage de ta page...)

A noter que ça fonctionne avec Orange mais que ça sera plus problématique avec un FAI qui permet de personnaliser le reverse DNS (ou si Orange se décide à le faire un jour...).
Administrateur
Bonjour,

est-ce qu'il y a moyen de s'épargner le reverse geoip truc en vérifiant si l'IP fait partie de celles attribuées à Orange/Wanadoo/FT/Orange Business Services ?
Les blocs devraient être référencés sur https://apps.db.ripe.net/search/query.html je suppose (ou bien il y a des listes toutes faites) ? Bon j'ai pas fait des études réseau donc ça sert peut-être à rien... Smiley rolleyes
Modifié par Felipe (22 May 2015 - 14:06)
Felipe a écrit :
Bonjour,

est-ce qu'il y a moyen de s'épargner le reverse geoip truc en vérifiant si l'IP fait partie de celles attribuées à Orange/Wanadoo/FT/Orange Business Services ?
Les blocs devraient être référencés sur https://apps.db.ripe.net/search/query.html je suppose (ou bien il y a des listes toutes faites) ? Bon j'ai pas fait des études réseau donc ça sert peut-être à rien... Smiley rolleyes

Effectivement, il y a même une API JSON plutôt bien faite. Par contre, devoir faire une requête supplémentaire à chaque affichage de page me semble pas terrible niveau performances.
L'intérêt de la base GeoIP est qu'elle est en local sur le serveur (il y a même un paquet Debian pour l'installer) donc le temps de réponse est court. (Et elle se base en partie sur les informations du RIPE).

Une autre solution serait de télécharger un snapshot de la base du RIPE et d'écrire un script pour faire une recherche dedans (mais ça serait un peu réinventer la roue, surtout que le format est pas super pratique).