2013-10-15 3 views
3

Je souhaite créer des liens uniques (un clic) pour mes newsletters.Créer un lien unique (un clic) avec un délai d'expiration

Regardez les étapes:

  1. Je créerai un lien, ou peut être un script qui va créer le lien http://www.mysite.com/[email protected]

  2. Mon abonné recevra un bulletin d'information qui contiennent ce lien.

  3. Il clique sur le bouton/visiter ce bulletin/lien.

  4. S'il veut visiter à nouveau, il ne peut, le lien sera expiré, et l'abonné sera redirigé vers la page d'autres http://www.mysite.com/expired.php

Donc il y a une chance de créer cela? Comment cela peut-il être accompli.

J'ai ce code

<?php 

    include("variables.php"); 

    $password = trim($_SERVER['QUERY_STRING']); 

    if($password == ADMIN_PASSWORD) { 
     // Create a new key 
     $new = uniqid('key',TRUE); 

     if(!is_dir('keys')) { 
      mkdir('keys'); 
      $file = fopen('keys/.htaccess','w'); 
      fwrite($file,"Order allow,deny\nDeny from all"); 
      fclose($file); 
     } 

     $file = fopen('keys/keys','a'); 
     fwrite($file,"{$new}\n"); 
     fclose($file); 
?> 

Ce script est situé dans un fichier nommé generate.php et si j'accéder à cette URL (http://www.site.com/generate.php?1234-1234 est le mot de passe peut générer un identifiant unique) va générer une expérience unique lien comme celui-ci http://www.site.com/page.php?key525e1200e3a5f9.19949496 qui sera seulement 1 fois disponible!

Maintenant, ce que je veux est d'accéder http://www.site.com/generate.php?1234&[email protected]

Et cela ce génèrent un lien unique http://www.site.com/page.php?key525e1200e3a5f9.19949496&[email protected]

Ceci est une page de téléchargement protégé! Je dois pouvoir ajouter l'email de l'utilisateur à la page de téléchargement, et ceci pour être généré par lien! s est la variable qui sera obtenue par la page de téléchargement avec $ _GET ['s']

Vous comprenez ce que je veux dire?

+1

J'ai trouvé comment [protéger un lien de téléchargement en utilisant une URL unique] (http://blog.focusoft.ro/2012/07/14/protecting-a-download-link-using-a-unique-url. htm). Mais je ne peux pas comprendre comment utiliser ce script pour mes usages. – Iulius

+0

Alors quoi? Où est la question? – idmean

+0

Ce tutoriel semble plutôt bien. Quel est le problème? Est-ce que vous attendez quelqu'un pour écrire le code pour vous? Essayez, puis revenez quand vous êtes coincé. –

Répondre

2

Je le ferais en utilisant cet email.

Ensuite, faites une page PHP avec les instructions suivantes. Demander le GET (dans ce cas l'adresse e-mail) et vérifier s'il existe dans la table de base de données (appelons ceci - hasvisited).

Si cela existe, redirigez-vous vers la page souhaitée.

Si n'existe pas alors ... 1.) Ajoutez-le à DB. 2.) afficher 1 page de temps.

Lorsque l'étape 1 se produit. Cela empêchera l'utilisateur de revenir à la visite.

Si vous voulez limiter à un groupe d'utilisateurs spécifiques - comme les personnes de solution ci-dessus pourrait taper theoritcally quoi que ce soit pour obtenir ce passé ...

Je créerais table avec les utilisateurs déjà et faire un état IF sur une colonne appelée "visites" et si 1 ou moins autorise et ajoute une colonne +1 aux visites. si ci-dessus 1 visite puis rediriger.

J'espère que cela a du sens - devrait également être assez simple à mettre en œuvre en utilisant PHP, MySQL DB et simple IF.

+1

Facile à jour, difficile à faire, car je ne connais pas très bien PHP. – Iulius