2017-08-03 67 views
0

这个项目就像建立在codeignitor之上的社交网站。代码检索

这里我默认的控制器是MyController.php(它加载登录页面) ,说我的域名是aravind.com

在我的应用程序的每个用户都会有一个唯一的ID。 以及我的要求是什么,当用户的unique_id在域名后立即给出时,用户的特定页面应该被打开。 即aravind.com/123应该开放其唯一的ID是123

我知道这可以通过将一个控制器和 域和UNIQUE_ID之间的功能来达到的用户页面(如:aravind.com/Search_class/search_func/123)。 但是通过这样做,特定用户的URL变得冗长,这是不可接受的。 所以我需要一个逻辑来解决这个问题。

注: 我有其他类和文件夹在我的控制器封装,所以要求SOLN应该 足够的智慧diferentiate在控制器封装用的UniqueID我的课和文件夹。 因此,为了区分我可以说,类和文件夹名称将连续字符串 其中UniqueID以下划线开头(_)。

同样的事情在Facebook上完成的,就像如果我们输入facebook.com/aravind.pillai.983,它会打开我的帐户, 这里仿佛网址是这样facebook.com/settings它会打开设置页面 用户谁拥有一个有效的会话。

任何帮助将不胜感激。 在此先感谢。

回答

0

设置route["404_override"]您的自定义类的一个(比如说Search.php)。 因此,当用户尝试输入一个无效的URL时,它将被重定向到Search.php。

这里使用$this->uri->segment(1)你会得到第一个uri段的值。

您可以在那里编写逻辑以确定用户是否输入了有效的unique_id。

现在你得到了一个类(Search.php)中的uri值。

0

你应该使用路由,你可以设置每个你想要的路线。在APPPATH.'config/routes.php'文件补充一点:

$route['(:any)'] = 'Search_class/search_func/$1'; 

你应该阅读有关documentation路由和检查其他examples

另外,请注意,应用程序将始终检查第一个URI段中的Search_class/search_func/$1,因此您需要将此规则放置在routes.php文件的末尾。该规则之前,您需要像设置其他规则:

$route['about'] = 'pages_c/show/about'; 
$route['contact'] = 'pages_c/show/contact'; 
// then after all declared routes, you can set wild card placeholder 
$route['(:any)'] = 'Search_class/search_func/$1';