IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ouverture d'un lien


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Par défaut Ouverture d'un lien
    Bonjour,

    J'ai une problématique et j'aimerais avoir les axes de résolution.

    Je souhaite enregistrer dans ma base de donnée le nombre de fois qu'un lien a été ouvert. Il est simple de faire cela du moment où le lien est cliqué depuis mon site. Mais si je copie le lien et que je l'envoi par mail par exemple, comment pourrais-je faire la vérification au moment où le lien est ouvert directement et ceux depuis une boite mail.

    P.S : Il s'agit du lien d'un document à télécharger.

    Cdt,

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonsoir,

    Le lien est une redirection vers ton site?

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    tu peux toujours regarder du côté de document.referrer ou encore différencier les URL en ajoutant un paramètre ...

  4. #4
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut
    ce n'est pas du javascript, mais tu peux exécuter un script côté serveur et insérer tes informations dans la db

    //code côté serveur ou tu insères dans la db

    //code pour télécharger le document

  5. #5
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 487
    Par défaut
    sur ton serveur, tu peux verifier les acces (apache ou ngnix)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  6. #6
    Membre éclairé Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Par défaut
    sur ton serveur, tu peux verifier les acces (apache ou ngnix)
    Le site est déployé sur un espace mutualisé chez OVH.

    Du coup comment faire cette vérification ?

    Citation Envoyé par jisig Voir le message
    ce n'est pas du javascript, mais tu peux exécuter un script côté serveur et insérer tes informations dans la db

    //code côté serveur ou tu insères dans la db

    //code pour télécharger le document
    Tu aurais un exemple ou un tuto ??

    Merci

    Citation Envoyé par bonjourajax Voir le message
    Bonsoir,

    Le lien est une redirection vers ton site?
    Oui mais plus précisément une redirection vers un document.

    Mon site www.example.com et le lien redirige vers www.example.com/doc/document.pdf

    Je voudrais comptabiliser le nombre de fois que ce lien à été ouvert depuis une source extérieur (je veux dire en accès direct sans avoir à suivre la navigation sur mon site)

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Les mutus OVH permettent d’ajouter un gestionnaire d’extension de fichier. Tu peux faire en sorte que les fichiers .pdf soient interprétés comme du PHP.
    Dans le dossier qui contient ton pdf, crée un .htaccess et ajoutes-y ce code :

    Code htaccess : Sélectionner tout - Visualiser dans une fenêtre à part
    AddHandler fastcgi-script .pdf
    (Note : le handler fastcgi-script est probablement spécifique aux serveurs d’OVH)

    Je te conseille de n’avoir pas d’autres fichiers pdf dans ce dossier, afin d’éviter les problèmes.

    Ensuite, change l’extension de ton pdf, par exemple en rajoutant .raw ou .bin, à vrai dire l’extension importe peu document.pdf.raw.

    Enfin, crée un fichier document.pdf qui contiendra en réalité le code PHP qui sera chargé à la fois de comptabiliser l’accès au fichier, et d’en servir le contenu :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    // le header est important pour que le fichier soit géré correctement côté client
    header('Content-Type: application/pdf');
     
    // exemple bidon de requête à la base de données
    $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
    $user = 'dbuser';
    $password = 'dbpass';
    $pdo = new PDO($dsn, $user, $password);
     
    $pdo->exec('UPDATE file_access
        SET access_count = access_count + 1
        WHERE file_name = "document.pdf"
        LIMIT 1');
     
    // envoi du contenu au client
    echo file_get_contents('document.pdf.raw');

    Ayant mon propre hébergement mutu sur OVH, j’ai pu tester et confirmer que ça fonctionne.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Ce que j'aurais fais :
    Le lien du mail envoie vers un fichier php de ton site, qui enregistre l'origine dans la base de données (pour compter) puis renvoie le document pdf au lieu d'aterrir sur la page du pdf

  9. #9
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Après la nuit (qui porte conseil comme on le sait) je me suis rendu compte que le truc avec AddHandler tenait plus de la bidouille instable que d’une vraie solution.
    Pour être plus précis, c’est une solution qui marche mais qui a des effets de bord potentiellement indésirables, notamment le fait que tous les fichiers pdf du dossier vont être interprétés comme du PHP. (Et j’ai eu aussi des erreurs 500 pendant mes tests, je ne sais pas s’il y a un lien.)

    Une solution plus « maintenable » serait d’utiliser l’URL-rewriting, qui permet de cibler précisément un nom de fichier.

    Dans le .htaccess on aurait ceci :
    Code htaccess : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Options +FollowSymLinks
    RewriteEngine on
      RewriteBase "/chemin/du/dossier/"
      RewriteRule "^document\.pdf$" "serve-document.php" [NC,L]

    La réécriture d’URL, comme son nom le laisse deviner, consiste à transformer un chemin d’une requête en un autre. Ça se rapproche du concept de routes mis en œuvre par plusieurs frameworks.

    Par défaut, la réécriture se fait côté serveur en interne, ce qui fait que le client ne voit pas la différence : l’adresse affichée dans le navigateur sera document.pdf, mais en réalité c’est le fichier serve-document.php qui sera renvoyé.

    Le module URL rewrite n’agit que sur les requêtes venant de l’extérieur, la fonction file_get_contents n’est pas affectée. C’est ce qui nous permet de renvoyer le fichier document.pdf sans tomber dans une boucle infinie de redirections :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    echo file_get_contents('document.pdf');

    (Le reste du code PHP ne change pas par rapport à mon précédent post.)

    Le guide d’OVH sur le module rewrite : https://docs.ovh.com/fr/hosting/htac...l-mod-rewrite/
    La doc Apache sur le module, plus complète : http://httpd.apache.org/docs/current...d_rewrite.html
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. [VBA] Ouverture d'un lien hypertexte
    Par sperchey dans le forum Access
    Réponses: 2
    Dernier message: 27/02/2007, 14h57
  2. Débutant: Ouverture Outlook via lien sur formulaire
    Par jrogron dans le forum Access
    Réponses: 6
    Dernier message: 11/08/2006, 10h40
  3. Ouverture d'un lien dans une autre page
    Par johnkro dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2006, 10h02
  4. Forcer l'ouverture d'un lien
    Par Beuss dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/07/2006, 17h46
  5. forcer l'ouverture d'un lien hypertexte avec IE
    Par beavis6511 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/12/2005, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo