1

ページがありますhttp://www.mysite.com/newsletter.php

ここで、メールを送信するときに変数を配置したいと思います。このページにアクセスすると、メール/ユーザー名が表示されます。

だから私はあなたにこのリンクをメールで送信しますhttp://www.mysite.com/newsletter.php?user=email@email.com

このリンクにアクセスすると、そのページに「Hello email@email.com, check out new blog」というメール/ユーザー名が表示されます。

そのページにユーザー名/メールを書きます

<?php echo $_GET['user']; ?>

このページにアクセスした後に期限切れになるようにするにはどうすればよいですか? 一度だけ行ってみたい!

*編集済み

有効期限が切れる一意のリンクを生成するために既に使用しているコードを見てください。

<?php

    include("variables.php");

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

    if($password == ADMIN_PASSWORD) {
        $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);
?>

<html>
    <head>
        <title>Page created</title>
        <style>
            nl { 
                font-family: monospace 
            }
        </style>
    </head>
    <body>
        <h1>Page key created</h1>
        Your new single-use page link:<br>
        <nl>
        <?php 
            echo "http://" . $_SERVER['HTTP_HOST'] . DOWNLOAD_PATH . "?" . $new; 
        ?></nl>
    </body>
</html>

<?php
    } else {

        header("HTTP/1.0 404 Not Found");
    }
?>`

また、このコードは 36 時間で期限切れになり、variables.php によって設定されます。

<?

    define('PROTECTED_DOWNLOAD','download.php');

    define('DOWNLOAD_PATH','/.work/page.php');

    define('SUGGESTED_FILENAME','download-doc.php');

    define('ADMIN_PASSWORD','1234');

    define('EXPIRATION_DATE', '+36 hours');

    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: ".date('U', strtotime(EXPIRATION_DATE)));

?>

この php ファイルは、次のようなリンクを生成します: http://www.mysite.com/page.php?key1234567890 次に、変数 user=email@email.com を uniqid の隣に追加して、次のようなリンクを生成する方法: page.php ?key1234567890&user=email@email.com<?php echo $_GET['user']; ?>にすると、次のページでemail@email.com を取得できます。

私の悪い英語でごめんなさい。

4

5 に答える 5

4

ステータス変数をデータベースに保存し、そのページにアクセスしたときに電子メールをデータベースに保存されているこれまでの訪問が 0 の電子メールと比較し、ステータス変数を更新して訪問済み = 1 を表示し、次に同じ URL が開かれたときに表示します。 、ステータス変数を見て、その1以降、そのページを表示しません。

于 2013-10-17T03:34:08.843 に答える
0

別のオプションでは、これにクライアント側のキャッシュを使用します。ユーザーが初めてアクセスしたときに Cookie を保存し、次回のアクセス時にユーザーが以前にアクセスしたかどうかを確認し、メッセージを表示できます。 http://plugins.jquery.com/project/Cookie

于 2013-10-17T03:41:22.183 に答える
0

K に追加の列を追加するだけで、ページのステータスが保存されます。ユーザーがページにアクセスしたとき。ステータスを変更するだけです。また、ステータスが変更されたページを許可しないでください。データベースクエリを少し変更するだけで簡単に実行できます。sessionこれにより、 と を使用して維持する負担が大幅に軽減されcookiesます。

于 2013-10-17T03:46:10.153 に答える