1

HTML 4 で完全に作成された古風な Web サイトがあり、ファイルにアクセス/ダウンロードするためにユーザーに電子メール アドレスを入力させる方法を考え出す必要がありました。

電子メール アドレスを送信すると、直接 PDF ファイルに移動するか、ファイルへのリンクがある「ありがとうございました」ページにリダイレクトされます。

次に、メールアドレスのリストと、誰が何をダウンロードしたかを確認できます。

サーバー側のスクリプト言語が必要だと言われました。正直なところ、私はコーディングの基本的なスキルを持っていますが、この作業には完全に困惑しています。どんな助けでも(簡単な言葉で説明してください)大歓迎です。

ありがとうございました!

ジェン

4

3 に答える 3

2

ソリューションは、サーバー側の 2 つの部分に分割されます。まず、ユーザー入力を処理するためのサーバー側コードと、メール アドレスからファイル名へのマッピングを格納するためのデータベースが必要です (ただし、これはサーバー上にある単なるテキスト ファイルである可能性があります)。

サーバー側スクリプト

サーバーサイド スクリプト言語に関しては、非常に人気のあるPHPなど、さまざまな選択肢があります。PHPは、ほとんどの Web ホスティング会社からサポートされていますが、設計上の問題が多く、(私の考えでは) 避けるべきです。すべての費用。ただし、それでも目的には十分です

対極にあるのは非常に高速なnode.jsです。これにより、JavaScript を使用して Web アプリケーションをプログラミングできます。これは間違いなくそうするためのより快適な手段ですが、ホスティングは通常より高価であり、大規模なユーザーベースを持つ Web アプリケーションを対象としています.

他にも多くの可能な解決策がありますが、議論のために、PHP を使用していると仮定します。

データベース

データベースの役割は、電子メール アドレスとそれぞれのファイル ダウンロード パスとの関係を保存することだけです。繰り返しになりますが、さまざまなソリューションが多数あり、それらに賛成または反対する人もいます。最も信頼性の低いソリューションの 1 つ (残念ながら、信じられないほど広くサポートされており、PHP と緊密に連携している) はMySQLです。これも議論のために使用します。

使い方

Web アプリケーションは、最初にユーザー入力 (つまり、HTML フォームから送信されたユーザーの電子メール アドレス) をチェックします。それで:

  • ユーザーが何も送信していない場合は、次のような HTML フォームを含むページを出力します。

    <form action="thispage.php" method="post">
      <input type="text" name="email" value="Enter your address here" />
      <input type="submit" value="Get my file!" />
    </form>
    

    ユーザーが送信ボタンをクリックすると、入力された電子メールアドレスが送信されthispage.phpます (または、このスクリプトを呼び出すことを決定したもの)。

  • ユーザー電子メール アドレスを送信した場合 (つまり、ユーザーが上記のフォームのボタンをクリックした場合)、電子メール アドレスを使用してデータベースにクエリを実行し、ユーザーのファイルがどこにあるかを調べます。これを行う方法については、無数のチュートリアルがあります。ここには、PHP の簡単な例があります。

    ファイル パスがデータベースから取得されたら、HTML を「Thank you!」として出力できます。ページ、PDF ファイルへのリンク、または次のコードを使用してすぐにリダイレクトするだけです。ここ$URLで、 はファイルの URL です。

    <?php
       header('Location: ' . $URL);
    ?>
    

    これを行う方法には、別の方法があります。PDF ファイルを許可されていない人から隠しておきたい場合は、サーバー上のどこかに保存して、外部からアクセスできないようにし、ファイルの内容をページに出力するだけです。 . これは次のようになります。ここ$pathで、 はサーバーのファイル システム上の PDF ファイルへのパスです。

    <?php
       header('Content-type: application/pdf');
       echo file_get_contents($path);
    ?>
    

これで始められることを願っています。さらにガイダンスが必要な場合は、質問するのに適切な場所にいます。

于 2012-07-05T19:06:22.900 に答える
2

どの程度の保護が必要かによって異なります。電子メール アドレスを入力しない人がファイルに完全にアクセスできないようにする場合は、.htaccess ファイル (Apache 内) を使用してファイルをブロックできます。次に、以前にセットアップしたセッションが正常であった場合にダウンロードするファイルを取得するページを作成します。おっしゃる通り、必要ないと思います。もう 1 つのオプションは、action="somepage.php" を使用して単純なフォームでページを作成することです。そのページで、$_GET または $_POST (つまり、PHP を使用している場合) を使用して電子メールを取得し、データベースまたはテキスト ファイルなどに保存します。(電子メールに送信することもできます) 次に:

1) 前述の保護を使用している場合は、セッションを OK に設定します (ファイルの先頭で session_start() を使用してこれを実行し、$_SESSION["gave_email"] = 'true'; を含めることができます)。次に、その変数をテストして、それが true かどうかを確認します。true の場合、ファイルを表示する PHP ページにユーザーをリダイレクトします。(このようなチェックの適切な構文は、次のようになります。

(if isset($_SESSION["gave_email"] && $_SESSION["gave_email"] == true)
//you show the content, then reset the $_SESSION variable to false

2) セキュリティについて心配していない場合は、ユーザーを必要なページにリダイレクトします (ファイルに直接、またはダウンロード用のリンクを含む別のページに)。PHP で転送するには、header('Location: page.php') を使用できます。ここで、page.php は目的のページです。全体は非常に単純に見えるので、これについて具体的な質問がある場合は、質問してください。

于 2012-07-05T18:01:14.543 に答える
1

Googleフィードバーナーを試してください。そのため、有効なダウンロードの検証が可能になります 誰かが feedburner を使用してあなたの Web サイトで購読すると、ダウンロードが可能になります。feedburner サブスクリプションは 10 時間ごとに更新されます。

http://feedburner.google.com/

于 2014-05-31T11:16:20.057 に答える