Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Je détecte automatiquement si Javascript est activé

53 réponses
Avatar
Jean Francois Ortolo
Bonjour

J'ai apporté une modification à mon site www.pronostics-courses.fr

Maintenant, quand Javascript n'est pas activé, un message s'affiche
en haut de l'écran, pour demander à activer Javascript.

Quand Javascript est activé, et qu'il n'y a eu aucune page de chargée
depuis plus de 30 secondes, le script Javascript inclus dans
pratiquement toutes les pages, efface sur le site, le fichier éventuel
caractéristique de l'adresse ip du visiteur, après avoir reconnu que la
variable de session js date de plus de 30 secondes, ou qu'elle n'existe
pas, puis affecte la variable de session js avec la valeur de la
fonction time() ( qui donne le nombre de secondes depuis le 1er Janvier
1970 je crois ), puis recharge la page, après avoir écrit sur le site,
le fichier caractéristique de l'adresse ip du visiteur.

Ce fichier, me sert essentiellement, à savoir si c'est le premier
chargement, ou le second.

Si le fichier caractéristique existe, et que la variable de session
js date de moins de 30 secondes, cette variable est mis à jour avec la
fonction time(), et il n'y a pas de rechargement de la page.

Celà prouve, que Javascript est activé.

Si le fichier caractéristique n'existe pas, c'est le premier
chargement, donc même chose qu'au début.

Si Javascript n'existe pas, le deuxième script qui crée le fichier
caractéristique, et met à jour la variable de session js, ne s'exécute
pas, et le script php inclus dans les pages du site, détecte que la
variable de session js, n'existe pas, ou est plus ancienne que 30 secondes.

Celà indique que Javascript est désactivé, ainsi le script inclus
dans les pages, affiche le message suggérant d'activer Javascript.

Pour alimenter la variable de session js, et créer le fichier
caractéristique, le script qui le fait, est lancé en Javascript par le
script inclus dans les pages, ce qui fait que ce deuxième script, ne
crée pas le fichier caractéristique, et ne met pas à jour la variable de
session js, si Javascript est désactivé.

Mon site fonctionne, mais le fait que je sois obligé, pour savoir si
c'est le premier chargement ou le deuxième, d'avoir un fichier
caractéristique du visiteur ( par l'adresse ip ), me semble avoir des
limitations, dans le cas ou l'adresse ip cliente, change à chaque
chargement de page.

C'est peut-être le cas du FAI AOL, ou de certaines connexions internet.

Je ne vois pas, comment détecter si c'est le premeir chargement ou le
deuxième, sans ce fichier caractéristique.

Je ne sais pas, si quand l'adresse ip cliente change, il est possible
au navigateur client, de mémoriser un identifiant de session, et si le
serveur, constatant que l'adresse ip change, va pouvoir aussi, méoriser
les variables de session.

Merci beaucoup de me le dire.

J'aurais besoin, que vous me disiez, si mon site fonctionne bien,
même dans ces conditions ( ce qui est peu probable ), et si celà ne
fonctionne pas, quel est son comportement.

Mon site, si Javascript est activé, détecte aussi si les cookies sont
acceptés, et sinon, affiche une fenêtre popup en Javascript, suggérant
d'accepter les cookies.

Pour l'instant, ces deux fonctionnalités ( Javascript et les cookies
), ne sont pas strictement nécessaires au fonctionnement de mon site.

Cependant, dans l'optique de mettre en place un module d'inscription
et d'authentification des visiteurs, pour des fonctionnalités pour
l'instant gratuites ( envoi automatique quotidien de mes pronostics de
quinté ), il y aura nécessité pour que les visiteurs soient authentifiés
que Javascript soit activé,et les cookies permis.

En dehors des spécificités du langage PHP, j'aurais simplement
besoin, que vous me disiez, si mon site fonctionne correctement, dans
toutes les conditions.

Merci beaucoup de vos réponses.

Jean François Ortolo

10 réponses

2 3 4 5 6
Avatar
Olivier Miakinen
Le 26/06/2012 22:27, Paul Gaborit complétait ma réponse :

Une autre consiste à créer un formulaire avec champs hidden, dont la
soumission est lancée par JavaScript. Ainsi, non seulement tu as ton
refresh, tu vérifies au passage que JavaScript fonctionne (si le
bouton est invisible et n'est accessible que par JS), et il n'y a
aucun paramètre passé dans l'url (c'est dans les champs hidden).



Les paramètres d'une requête (même s'ils proviennent de champs cachés)
apparaissent en clair dans l'URL si la requête est de type GET. Pour
qu'ils soient non pas dans l'URL mais dans le document de la requête, il
faut utiliser la méthode POST.



Oui, merci de le préciser. Donc un formulaire avec méthode POST.
Avatar
Olivier Miakinen
Bonjour,

Le 27/06/2012 13:18, Jean Francois Ortolo a écrit :

Est-ce possible, que plusieurs visiteurs avec la même adresse ip ,
visitent mon site strictement en même temps, à 30 secondes près ?



Oui, bien sûr. Comme je l'ai déjà dit plus d'une fois, de mon lieu
de travail j'utilise la même adresse IP de sortie que mes quelques
centaines de collègues, puisque nous passons tous par le même proxy
http. Il doit être assez fréquent que deux personnes parmi ces
plusieurs centaines accèdent au même site en même temps, à trente
secondes près.

Par ailleurs, ma femme et moi utilisons aussi la même adresse IP
quand nous sommes à la maison, celle du routeur de notre FAI qui
utilise NAT (Network Address Translation).

C'est le seul problème à résoudre.



Mais enfin, pourquoi est-ce un problème ? Pourquoi diable as-tu
besoin de ces deux requêtes à moins de trente secondes d'intervalle,
contrôlées par adresse IP ? Que font deux requêtes que ne ferait
pas une seule ?

Le degré de variation minimum étant fixé, j'ai modifié mon package,
pour éliminer ce dernier nombre des adresses ip, donc je ne garde que
les trois premiers nombres ( pour l'ip4 ), et pour l'instant en théorie
( je ne peux pas vérifier pour le moment, il n'y a pas d'adresses ip6 ),
j'élimine les deux derniers nombres des adresses ip6.



Si c'est pour faire ça, autant garder la totalité de l'adresse... ou
rien ! Quelqu'un qui change d'adresse peut changer pour une dont tous
les octets sont différents, tandis que deux personnes différentes
peuvent avoir la même adresse au bit près.

À la limite, je me demande s'il ne serait pas possible qu'une requête
se fasse en IPv4 et la suivante en IPv6, ou le contraire.

Prochainement, je vérifierai si ce degré de variation des adresses
ip, est fiable, donc suffisant pour isoler les visiteurs uniques [...]



Je crois t'avoir dit plusieurs fois que ce n'était pas le cas. Si
tu veux, un soir je peux t'envoyer une série de quelques requêtes,
alternativement d'un Linux et d'un Windows (mon PC et celui de ma
femme), en l'espace de quelques secondes.

Moralité : Rien ne vaut l'expérience.



Moralité : l'expérience est une lanterne que l'on porte dans le dos
et qui n'éclaire jamais que le chemin parcouru¹. Corollaire : on a beau
essayé de te communiquer notre propre expérience, puisque tu as décidé
de ne pas en tenir compte rien ne te fera changer d'avis.

--
Olivier Miakinen

(¹) Confucius, je crois.
Avatar
Olivier Miakinen
Le 28/06/2012 04:01, Jean Francois Ortolo a écrit :

PS [...] il est bientôt 4
heures du matin, et ma passion de l'informatique, me joue des tours... ;)



Je comprends bien mieux pourquoi tu ne veux pas renoncer à ton algo de
reconnaissance de l'adresse IP : c'est ta passion de l'informatique
qui te fait t'y accrocher, car tu l'aimes cet algo. Étant moi-même
informaticien et passionné, j'ai aussi connu ce sentiment qui dépasse
parfois la raison...

Aussi, je suis preneur de toutes suggestions.constructives... ;)



... et donc, notre suggestion de tout virer, tu ne *peux* pas la
juger constructive, puisqu'elle détruit cette passion. Désolé, je
te souhaite de revenir à la raison, mais cela pourra prendre des
mois ou des années avant que tu y viennes.

Cordialement,
--
Olivier Miakinen
Avatar
Tonton Th
On 06/28/2012 04:01 AM, Jean Francois Ortolo wrote:

( l'adresse ip est filtrée, je ne prend que les trois premiers nombres,
pour une adresse ip4 )



Tout le monde n'est pas sur un /24 ;)

--

Nous vivons dans un monde étrange/
http://foo.bar.quux.over-blog.com/
Avatar
Olivier Miakinen
Le 28/06/2012 11:28, j'écrivais :

on a beau essayé



Ça aussi, c'est beau et pas mal essayé ! ;-)

[suivi en privé]
Avatar
Jean Francois Ortolo
Bonjour Monsieur

J'ai programmé l'algorithme correct, et mis en place sur mon site.

Au lieu de 20 minutes pour une consultation d'une page, je l'ai fixé
à 5 minutes max.

D'après le contenu actuel de la table CONNEXION, il ne semble pas y
avoir de problèmes causés par des adresses ip variables.

En effet, j'enregistre aussi dans une colonne supplémentaire
complete_ip_address de la table CONNEXION, les adresses ip non filtrées.

S'il y avait des problèmes causés par des changements d'adresses ip,
je le saurais, car il y aurait des adresses ressemblantes qui se
suivent, en ordre chronologique.

Or , ce n'est pas le cas.

Vous pouvez vérifier sur mon site, s'il y a des problèmes éventuels.

Bien amicalement.

Jean François Ortolo
Avatar
Olivier Miakinen
Bonjour,

Le 28/06/2012 16:26, Jean Francois Ortolo a écrit :

J'ai programmé l'algorithme correct, et mis en place sur mon site.



Tu fais bien comme tu veux...

S'il y avait des problèmes causés par des changements d'adresses ip,
je le saurais, car il y aurait des adresses ressemblantes qui se
suivent, en ordre chronologique.



Non. Si une machine utilise deux adresses IP, soit successivement
soit simultanément, ces deux adresses n'ont aucune raison d'être
« ressemblantes ».

Vous pouvez vérifier sur mon site, s'il y a des problèmes éventuels.



Vu que je ne sais pas ce qui est censé mal se passer si tu ne fais
qu'une requête au lieu de deux, je ne vois pas ce que je pourrais
vérifier. Je me suis connecté, pour voir, de chez moi (d'ici je ne
peux pas) et je n'ai rien vu de particulier.

À l'occasion, tu voudras bien nous expliquer (en langage courant,
pas en terme de PHP et SQL) ce qu'est censé apporter ce système de
doubles requêtes ?

Cordialement,
--
Olivier Miakinen
Avatar
Jean Francois Ortolo
Le 28/06/2012 16:57, Olivier Miakinen a écrit :
Bonjour,

À l'occasion, tu voudras bien nous expliquer (en langage courant,
pas en terme de PHP et SQL) ce qu'est censé apporter ce système de
doubles requêtes ?

Cordialement,






Bonjour Monsieur

L'intérêt, est de détecter si le navigateur client, a Javascript
activé ou non, e/ou les Cookies acceptés ou non.

Si l'un de deux, ou les deux, sont interdits, alors un message
s'affiche en haut de l'écran de pratiquement toutes les pages de mon
site, indiquant qu'il est souhaitable d'activer Javascript,et de
permettre les Cookies.

Je ne distingue pas, les deux possibilités de Javascript et des
Cookies, et le message est le même dans tous les cas où ce message
apparaît.

Pour l'instant, je n'ai pas besoin de celà, mais à terme, si je rend
mon site payant, le système de paiement Allopass ( que j'ai déjà
programmé sur mon site, mais n'est pas actif ), nécessite que Javascript
soit activé, et les Cookies acceptés.

Dans mes deux scripts de configuration, si la constante PAYANT est
égale à 0, le système de paiement est désactivé.

Si elle vaut 1, le système de paiement est actif, et n'apparaît que
dans les pages de statistiques et pronostics, du lendemain ou du soir,
et ceci, seulement pour les Courses à événement ( Quinté, Quarté
Régional, Classic Tiercé, Multi ou 2 sur 4 ).

Le reste est laissé gratuit, comme produit d'appel pour mes clients
futurs.

Le système de paiement, inclut des abonnements par Carte Bleue, ou
bien des appels téléphoniques surtaxés, ou par SMS, pour obtenir le
code/mot de passe, qui sera reçu par mon site avec les autres
coordonnées du client, si le paiement est validé par Allopass.

Ce système de paiement, inclut une inscription déclenchée
automatiquement en Javascript au moment de l'abonnement, pour que les
clients puissent être identifiés, et joint par leur login et leurs
adresses email.

Un client abonné ( paiement CB ), doit s'authentifier avec son login
et son code/mot de passe, pour accéder aux ressources protégées.

Le futur client qui s'abonne, doit d'abord donner son pseudo ( unique
dans la database ), et son adresse email, dont la syntaxe est vérifiée,
puis la fenêtre d'abonnement d'Allopass, s'affiche automatiquement, et
le client, soit paye, soit s'abstient.

Si le paiement est valide, le client revient automatiquement à la
page d'origine, est il est authentifié automatiquement.

Ceci, également dans le cas d'un paiement par téléphone.

Comme vous voyez, cette interface de paiement, du moins le
séquencement des opérations, est aussi convivial que possible, pour que
le client ne soit pas désorienté. ;)

Je n'ai pas encore entièrement vérifié ave certitude, les deux
scripts qui seront appelés sur mon site par le site Allopass, après un
paiement valide, soit par téléphone, soit par carte Bancaire, soit
autres moyens de paiement possibles.

Dans l'état actuel, la constante PAYANT est à 0, donc le système de
paiement n'apparaît pas, et mon site est gratuit. ;)

J'ai testé l'interface du système de paiement que j'ai programmée,
sur mon ordinateur en local, en faisant en sorte, que les fonctions
Javascript mises en oeuvre par ce système, et cibles des formulaires
d'accès/authentification et d'abonnement, rendent toujours false, ce qui
fait qu'avec des alert Javascript, j'ai vérifié que les paramètres qui
leur sont transmis, sont corrects.

Ces fonctions, rendant false, ne déclenchent pas réellemnt les urls
cibles des formulaires.

J'ai déjà implémenté cette solution de paiement Allopass, sur le site
www.lespronostics.com , que j'ai programmé entièrement, pour le
Directeur de mon site partenaire : www.lescourse.com , ceci
gratuitement, pour des raisons personnelles.

Mon propre site est : www.pronostics-courses.fr , je ne sais plus si
je l'avais déjà dit.

Je n'ai pas les moyens de rendre mon site payant pour l'instant, car
mes allocations A.A.H. et autres, sont soumises à conditions de
ressources. Elles sont diminuées plus qu'au prorata des revenus
imposables, si j'ai le moindre revenu imposable.

Alors, pour l'instant, je ne fais rien. ;)

Cependant, sur mon site, vous pouvez entendre de la musique classique
de piano, et aussi de piano et violon, des morceaux que j'ai joués
depuis 2006. ;)

La page pour ces morceaux, est accessible à partir de la page
d'accueil, en bas à droite de la page d'accueil.

Merci de me dire votre sentiment à ce sujet. ;)

Bien amicalement.

Jean François Ortolo
Avatar
Jean Francois Ortolo
Le 28/06/2012 18:08, Jean Francois Ortolo a écrit :

J'ai déjà implémenté cette solution de paiement Allopass, sur le site
www.lespronostics.com , que j'ai programmé entièrement, pour le
Directeur de mon site partenaire : www.lescourse.com , ceci
gratuitement, pour des raisons personnelles.




Rebonjour

J'ai fait une erreur.

C'est www.lescourses.com , et non pas www.lescourse.com

Raahh là là làààà.. Se couucher à 4h du mat...

Bien amicalement.

Jean François Ortolo
Avatar
Tonton Th
On 06/28/2012 04:26 PM, Jean Francois Ortolo wrote:

S'il y avait des problèmes causés par des changements d'adresses ip,
je le saurais, car il y aurait des adresses ressemblantes qui se
suivent, en ordre chronologique.



Le répartiteur de charge me bascule de Free à Orange entre
deux pages, il se passe qui quoi ?

--

Nous vivons dans un monde étrange/
http://foo.bar.quux.over-blog.com/
2 3 4 5 6