3

ニュースレターに独自のリンク (ワンタイム クリック) を作成したいと考えています。

手順を見てください:

  1. リンクを作成するか、リンクを作成するスクリプトにすることができますhttp://www.example.com/page.php?unique=email@email.com

  2. 私のサブスクライバーは、このリンクを含むニュースレターを受け取ります。

  3. 彼らはこのニュースレター/リンクをクリック/訪問します。

  4. もう一度アクセスしたい場合はアクセスできません。リンクは期限切れになり、サブスクライバーは別のページhttp://www.example.com/expired.phpにリダイレクトされます。

それで、これを作成する機会はありますか?これはどのように達成できますか?

私はこのコードを持っています

<?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);
?>

このスクリプトは generate.php という名前のファイルにあり、この URL ( http://www.example.com/generate.php?1234 - 1234 は一意の ID を生成するためのパスワード) にアクセスすると、次のような一意のリンクが生成されます。このhttp://www.example.com/page.php?key525e1200e3a5f9.19949496は一度しか利用できません!

今私が欲しいのは、http://www.example.com/generate.php?1234&s=email@email.comにアクセスすることです

これにより、一意のリンクhttp://www.example.com/page.php?key525e1200e3a5f9.19949496&s=email@email.comが生成されます

これは、保護されたダウンロード ページ用です。ユーザーの電子メールをダウンロード ページに追加する必要があり、これはリンクによって生成されます。's' は $_GET['s'] を使用してダウンロード ページで取得される変数です。

私が意味することを理解していますか?

4

1 に答える 1

2

私はそこの電子メールを使用してこれを行います。

次に、次のステートメントを使用して PHP ページを実行します。GET (この場合は電子メール アドレス) を要求し、それがデータベース テーブルに存在するかどうかを確認します (これを呼び出します - hasvisited)。

これが存在する場合は、必要なページにリダイレクトします。

存在しない場合... 1.) DB に追加します。2.) 1 時間のページを表示します。

ステップ1が発生したとき。ユーザーが再びアクセスするのを防ぎます。

これを特定のユーザーのグループに制限したい場合-上記のソリューションのように、人々は理論的にこれを乗り越えるために何でも入力できます...

私はすでにユーザーを含むテーブルを作成し、「訪問」と呼ばれる列でIF状態を実行し、1以下が許可されている場合は訪問列に+1を追加します。1回以上の訪問の場合はリダイレクトします。

これが理にかなっていることを願っています。また、PHP、MySQL DB、および単純な IF ステートメントを使用して実装するのもかなり簡単になるはずです。

于 2013-10-15T16:19:43.127 に答える