1

这个话题可能听起来很熟悉,但我对 Stackoverflow 提出的任何问题都不太满意。看到我正在创建一个只有少量成员的网站,比如大约 50 人。我已经创建了我的注册表单和登录表单。但是现在我不想为每个新注册的会员分配一个头像。当我的新会员注册成功时,将分配一个保存在服务器上的随机头像给他们。用户将在每次访问时随身携带此头像。所以要澄清我的问题:

如何为每个新用户分配一张随机图片并将图片保存到他们的user_id?

我目前正在使用 MySQL 并在 PHP 中进行编码。我有一个“选择随机图片”功能,但不确定如何与用户一起存储图片。我很高兴得到任何建议。

编辑

经过一些考虑,我已经能够陈述一个更清晰的目标。我将图像存储在文件系统中,我想随机分配给新成员,并且当图像被分配后,它应该被“拍摄”。因此,如果新用户注册,他将获得随机图像,而无法获得已拍摄的图像。

我只成功地创建了一个上传随机图像的生成器,但不能保证同一张图片不会再次出现:

                    $avatarDir = 'members/images/avatars/';
                    $pics= glob($avatarDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
                    $randomPics = $pics[array_rand($pics)]; 
                    $query_new_user_picture = $this->connection->query("INSERT INTO my_images (image) VALUES('$randomPics')");
                    $results = mysql_query($query_new_user_picture);
4

1 回答 1

2
  1. 在数据库中有一个字段,您可以在其中保存名称/id/文件路径/图片的任何内容。
  2. 当用户注册时选择一张随机图片(array_rand, shuffle, 不管)。
  3. 将随机选择的图片保存在数据库中的字段中。

有那么难吗?


$user = /* get user data from database */;

/**
 * assuming $user looks something like this:
 * 
 * array('name' => 'John Doe', 'email' => 'john@example.com',
 *       'profile_picture' => 'monster.jpeg');
 */

printf('<img src="img/profile_pictures/%s">', $user['profile_picture']);
// output: <img src="img/profile_pictures/monster.jpeg">

现在只需确保可以通过该 URL 访问该图像。

于 2012-11-06T22:23:58.280 回答