0

我网站的一部分允许用户上传文件。这些文件不会上传到网站托管的服务器(比如说site.com),而是上传到s1.site.coms2.site.com。这些子域指向与主服务器不同 IP 地址的服务器。我正在使用 Uploadify jQuery 插件进行文件上传。

现在,当用户登录并上传文件时,我希望上传的文件出现在“文件”下的帐户页面中。我被困在最好的方法是什么。

我可以为 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 回答