CodeIgniter Session Class

In this tutorial we are going to take a look at the CodeIgniter Session Class, another core library that comes with CodeIgniter. From the CI Session class documentation:

The Session class permits you maintain a user’s “state” and track their activity while they browse your site.

An interesting point to note is that CI, does not use PHP’s native session functions. Instead CI generates its own session data, which they say offers more flexibility to developers.

Today, we will be building a simple application which we will call “MyCoolBibleApp” and I’ll demonstrate the usage of the Session class to store and retrieve data and also introduce Flashdata. Flashdata is simply session data that you only need for a single server request. Once that request is complete the flashdata is removed. Persons familiar with Ruby on Rails may know this as a ‘Flash message’.

Initial Setup

To begin, get the latest version of CodeIgniter. At the time of this tutorial, CI 1.6.3 is the latest. Copy the files to a folder on your webserver and call it ‘bibleapp’. Next, let us make a few changes to the config.php and autoload.php files. In config.php we need to tell CI the base URL of our application.

 

 

and in autoload.php, we will autoload the ‘Session Class’ and the ‘URL’ and ‘Form’ helpers:

 

 

Now that we have the initial setup complete, let’s move on to creating our controllers.

Controllers

For this tutorial we will only be needing two controllers. One for Login/Logout and the other to represent requests to the Dashboard of the application. Let us first look at the Login controller. Create a new controller called ‘login.php’ and place it in your system/application/controllers folder. The code should look like this:

 

 

Let’s break that down. First you may notice we have three (3) methods, index(), process_login() and logout(). The index() method will contain our login form, process_login() will handle and process the login attempt and logout() will take care of logging the user out of the application.

In index(), it checks a session variable called logged_in to see if it is set to TRUE. If it is, then we are already logged in and can proceed to the dashboard of the application. However, if it is FALSE, then it continues and displays the login form.

While for process_login(), we get the username and password typed in by the user and check if it matches the ones we’ve hard coded into our application. Usually you would check a database, however, since this is just a simple example, we’ll stick with the hard coded values. If the username and password are correct, we add some data to our session array and then redirect the user to the dashboard.

 

 

The above code is what stores our session data. Here we store the username of the user and also assign TRUE to our logged_in variable so that the application knows that we have successfully logged in. While the else condition sets the Flashdata which is used to display a message to the user if the username or password is incorrect:

 

 

Note that the first parameter ‘message’ is simply a key (or name) that we can use later to identify and retrieve the Flashdata from in our views. Also note that while I’ve used Flashdata in this case to display an error message at logon, it is typically used for status messages such as ‘Record 2 deleted’ or ‘Verse successfully added’.

The last method in our Login controller is logout(). This method simply destroys the current session, thus, logging the user out of the application.

Next we create the Dashboard controller ‘dashboard.php’ again in our system/application/controllers/ folder. The code should be as follows:

 

 

This controller is pretty straightforward as we only have a single method called ‘index()’. All this method does is check to see if the user is logged in. It checks the logged_in session variable we set earlier in our Login class. If that variable is not equal to TRUE, then redirect them to the login page, else, continue and display the dashboard for the application.

With our controllers now complete, let us create our views. This is what the user will see when they use our application.

Views

As the views are basically just (x)HTML with a few functions from the CI Form and URL helpers (which have been discussed in the Introduction to CodeIgniter series), I won’t go into too much detail. Also note that both the ‘header.php’ and ‘footer.php’ views just contain the HTML code that would be common to all pages in the application (which can be found in the sample code available for this tutorial).

Our login.php view is as follows:

 

 

The only thing new here is how we retrieve our session flashdata. As you may recall, if the user’s login credentials are incorrect they are sent back to the login page and a message is displayed letting them know what went wrong. To retrieve that session flashdata, CI uses the following:

 

 

The key ‘message’ here represents the key which was assigned to the flashdata in our Login controller.

Our dashboard.php view is as follows;

 

 

Again this is pretty easy to follow. The only thing new is how we retrieve and display the username of the user who just signed in. We do this by using the following:

 

 

Now that our views are complete, let us give our application a try.

Running the Application

To run the applcation, open your browser and visit the URL of the application. You might remember that we had set the base URL in our configuration earlier. So head to that address:

http://localhost/bibleapp/

You should see the standard welcome page that comes with CI. As we want our login page to show up by default, we have to change the default controller used by our application. To do this open ‘routes.php’ located in system/application/config/ and change $route['default_controller'] to the following:

 

 

Now if you visit the above URL again you should see your login form.

Next try to login. Enter an incorrect username and password so we can see the flashdata display our error message. The following message should show up:

Oopsie, it seems your username or password is incorrect, please try again.

Now try entering the correct username and password. In the case of this application we hard coded the credentials to be username ‘James’ and password ‘James1:12’ (without the quotes). In a real application you would of course allow the user to have their own username and password and probably check their credentials in a database.

If all goes well you should now see the application dashboard, displaying a picture of the user, the username, current memory verse and some previous verses. Pretty cool huh?

Before we close this tutorial, log out of the application using the Log out link and you should be sent back to the login page and the session data should now be removed. If you then attempt to go directly to the dashboard without logging in again, it will send you back to the login screen.

Summary

So what have we learnt today? We learnt how to build a simple application that stores and retrieves session data using CI’s Session Class. We also used flashdata to display a message to the user if an incorrect username or password was entered on the login page.

While we didn’t cover storing session data in a database in this tutorial, it is certainly worth looking into and you can read more about doing this via the CI Session class documentation .

I hope you found this tutorial helpful. Peace and God bless.

The code for this tutorial is also available for download: codeigniter-bibleapp.zip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值