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
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值