如何根据公共配置文件视图的用户的用户名获取正确的ID?

时间:2014-03-19 07:27:01

标签: codeigniter user-profile

我试图弄清楚如何在codeigniter中查看个人资料页面。我知道如何在CodeIgniter中创建模板等等,但我不知道应该采用哪种方式来处理从用户名转换为用户ID"以安全的方式。这是一个应在用户未登录时查看的个人资料(公共个人资料)。

来自我的个人资料控制器的

代码段:

$username = uri_segment(3); //Here's the actual username is stored in the url
$profile = new Profile();
$this->user_id = $profile->getUserByUserName($username);

以上似乎没问题,对吗?但当用户名包含空格时," username-link" " Gustav Wiberg" 获取到" gustav-wiberg" (空格替换为连字符,用户名为小写)

实际链接可能如下所示:http://www.domain.com/profile/gustav-wiberg

但如果我用uri_segment查看此链接,我会收到用户名" gustav-wiberg"而不是" Gustav Wiberg"这是我要与之比较的REAL用户名(通过获取$profile->getUserByUserName($username);的返回值。

我采取了错误的做法吗?或者是基于每个用户名的方法必须是唯一的。

我可以从uri_segment &#34; gustav-wiberg&#34; 替换大写每个单词并用空格替换hypens,然后执行查询以检查该用户名的id?< / p>

请给我任何指示......

1 个答案:

答案 0 :(得分:2)

你可以在创建用户名时进行检查,不应该有空格,即用户可以创建一个URL友好的用户名。 或者如您所述,您可以从uri_segment进行替换。但考虑到不同的场景,这种方法可能会产生问题,因此创建一个友好的URL用户名似乎更好。

还有一个选项是您可以在数据库中添加一个字段以及用户名,例如“slug”。其中,您可以将用户名转换为URL友好名称和存储。并在检索时检查该名称。