0

私のサイトの1つのセクションでは、ユーザーがファイルをアップロードできます。これらのファイルは、Webサイトがホストされているサーバー(たとえばsite.com)にアップロードされません。代わりにs1.site.coms2.site.comなどにアップロードされます。これらのサブドメインは、メインサーバーとは異なるIPアドレスのサーバーを指します。ファイルのアップロードにUploadifyjQueryプラグインを使用しています。

これで、ユーザーがログインしてファイルをアップロードしたときに、アップロードしたファイルをアカウントページの[ファイル]の下に表示したいと思います。私はこれを行うための最良の方法が何であるかについて立ち往生しています。

Uploadifyのオプションを設定して、アップロードと一緒に追加のPOSTデータを送信できます。簡単な解決策は、ファイルをアップロードするユーザーのユーザー名をファイルのアップロードと一緒に送信することですが、他のユーザーは自分のユーザー名を偽装して他の人のアカウントにファイルをアップロードすることができます。クールではありません。したがって、ユーザー名のなりすましを停止しながら、どのユーザーがファイルをアップロードしているかを知る方法が必要です。

ユーザーセッションをPOSTデータとして送信することを考えました。次のようなものです。

$('#file_upload).uploadify({
    formData : { '<?php echo session_name();?>' : '<?php echo session_id();?>' }
});

しかし、私はセッションについては本当に知りません。CodeIgniterは私のユーザーログインを処理しています。これは機能しますか?誰かが私にこれをどうやってやるのか正確に説明してもらえますか?

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

4

1 に答える 1

3

md5ハッシュを使用して、ユーザー名に基づいて一意のハッシュ値を作成するようなことをするのが好きです。これは、ユーザーが初めて自分のアカウントを作成したときに行います。次に、そのハッシュ値を。という列に格納しますhash_validation

次に、(ユーザーログイン時に(これにはCodeIngiterを使用します))ハッシュ値のセッション変数を作成します。次に、セキュリティ上の理由から、テーブルとユーザー名に対してハッシュ値を確認できます。それは->と同じくらい簡単です

$_SESSION['hash_value'] = $row['hash_validation']; //general example of grabbing the row we created

SESSION値をページのdivで非表示にして、サーバーと通信しなくてもJavaScriptで常に参照できるようにするのが好きです。

上記のすべてが完了したら、このformDataメソッドを使用してハッシュ値をサーバーに送信できます(上記のようにphpを使用する必要はありません)。次に、サーバーはハッシュ値を、テーブル、そしてそれが正しければ、ファイルをアップロードします。

于 2012-05-18T18:57:28.393 に答える