Web Development Information |
Developing State-enabled Applications With PHP
Installment 1 Developing State-enabled Applications With PHP When a user is browsing through a website and is surfing from one web page to another, sometimes the website needs to remember the actions (e.g. choices) performed by the user. For example, in a website that sells DVDs, the user typically browses through a list of DVDs and selects individual DVDs for check out at the end of the shopping session. The website needs to remember which DVDs the user has selected because the selected items needs to be presented again to the user when the user checks out. In other words, the website needs to remember the State - i.e. the selected items - of the user's browsing activities. However, HTTP is a Stateless protocol and is ill-equipped to handle States. A standard HTML website basically provides information to the user and a series of links that simply directs the user to other related web pages. This Stateless nature of HTTP allows the website to be replicated across many servers for load balancing purposes. A major drawback is that while browsing from one page to another, the website does not remember the State of the browsing session. This make interactivity almost impossible. In order to increase interactivity, the developer can use the session handling features of PHP to augment the features of HTTP in order to remember the State of the browsing session. The are basically 2 ways PHP does this: 1. Using cookies The next installment discusses how to manage sessions using cookies... Installment 2 Cookies Cookies are used to store State-information in the browser. Browsers are allowed to keep up to 20 cookies for each domain and the values stored in the cookie cannot exceed 4 KB. If more than 20 cookies are created by the website, only the latest 20 are stored. Cookies are only suitable in instances that do not require complex session communications and are not favoured by some developers because of privacy issues. Furthermore, some users disable support for cookies at their browsers. The following is a typical server-browser sequence of events that occur when a cookie is used: 1. The server knows that it needs to remember the State of browsing session 2. The server creates a cookie and uses the Set-Cookie header field in the HTTP response to pass the cookie to the browser 3. The browser reads the cookie field in the HTTP response and stores the cookie 4. This cookie information is passed along future browser-server communications and can be used in the PHP scripts as a variable PHP provides a function called setcookie() to allow easy creation of cookies. The syntax for setcookie is:int setcookie(string name, [string val], [int expiration_date], [string path], string domain, [int secure]) The parameters are: 1. name - this is a mandatory parameter and is used subsequently to identify the cookie 2. value - the value of the cookie - e.g. if the cookie is used to store the name of the user, the value parameter will store the actual name - e.g. John 3. expiration_date - the lifetime of the cookie. After this date, the cookie expires and is unusable 4. path - the path refers to the URL from which the cookie is valid and allowed 5. domain - the domain the created the cookie and is allowed to read the contents of the cookie 6. secure - specifies if the cookie can be sent only through a secure connection - e.g. SSL enable sessions The following is an example that displays to the user how many times a specific web page has been displayed to the user. Copy the code below (both the php and the html) into a file with the .php extension and test it out. [?php//check if the $count variable has been associated with the count cookieif (!isset($count)) { $count = 0;} else { $count++;}setcookie("count", $count, time()+600, "/", "", 0);?] [html] [head] [title]Session Handling Using Cookies[/title] [/head] [body] This page has been displayed: [?=$count ?] times. [/body][/html] The next installment discusses how to manage sessions using PHP session handling functions with cookies enabled... Installment 3 PHP Session Handling - Cookies Enabled Instead of storing session information at the browser through the use of cookies, the information can instead be stored at the server in session files. One session file is created and maintained for each user session. For example, if there are three concurrent users browsing the website, three session files will be created and maintained - one for each user. The session files are deleted if the session is explicitly closed by the PHP script or by a daemon garbage collection process provided by PHP. Good programming practice would call for sessions to be closed explicitly in the script. The following is a typical server-browser sequence of events that occur when a PHP session handling is used: 1. The server knows that it needs to remember the State of browsing session 2. PHP generates a sssion ID and creates a session file to store future information as required by subsequent pages 3. A cookie is generated wih the session ID at the browser 4. This cookie that stores the session ID is transparently and automatically sent to the server for all subsequent requests to the server The following PHP session-handling example accomplishes the same outcome as the previous cookie example. Copy the code below (both the php and the html) into a file with the .php extension and test it out. [?php//starts a sessionsession_start(); //informs PHP that count information needs to be remembered in the session fileif (!session_is_registered("count")) { session_register("count"); $count = 0;}else { $count++;} $session_id = session_id();?] [html] [head] [title]PHP Session Handling - Cookie-Enabled[/title] [/head] [body] The current session id is: [?=$session_id ?] This page has been displayed: [?=$count ?] times. [/body][/html] A summary of the functions that PHP provides for session handling are: 1. boolean start_session() - initializes a session 2. string session_id([string id]) - either returns the current session id or specify the session id to be used when the session is created 3. boolean session_register(mixed name [, mixed ...]) - registers variables to be stored in the session file. Each parameter passed in the function is a separate variable 4. boolean session_is_registered(string variable_name) - checks if a variable has been previously registered to be stored in the session file 5. session_unregister(string varriable_name) - unregisters a variable from the session file. Unregistered variables are no longer valid for reference in the session. 6. session_unset() - unsets all session variables. It is important to note that all the variables remain registered. 7. boolean session_destroy() - destroys the session. This is opposite of the start_session function. The next installment discusses how to manage sessions using PHP session handling functions when cookies are disabled... Installment 4 PHP Session Handling - Without Cookies If cookies are disabled at the browser, the above example cannot work. This is because although the session file that stores all the variables is kept at the server, a cookie is still needed at the browser to store the session ID that is used to identify the session and its associated session file. The most common way around this would be to explicitly pass the session ID back to the server from the browser as a query parameter in the URL. For example, the PHP script generates requests subsequent to the start_session call in the following format:http://www.yourhost.com/yourphpfile.php?PHPSESSID=[actual session ID] The following are excerpts that illustrate the discussion: Manually building the URL: Building the URL using SID: Used with the author's permission. This article is written by John L.
MORE RESOURCES: Unable to open RSS Feed $XMLfilename with error HTTP ERROR: 404, exiting |
RELATED ARTICLES
Successful Commercial Sites Do you make your website just to entertain yourself or do you want it to be a great web store? The fact is more than 80% of websites are trying to sell you something. There is nothing wrong if you want to get some money from the website you made, but remember to put some REALLY interesting information on your pages. Now You Have a Web Site - Have You Ever Heard of Accessibility? An accessible Web site is easily approached, easily understood, and useable for all. There are accessibility standards set forth by the World Wide Web Consortium, which all sites should adhere to as much as possible. Web Site Development Process - The Life-cycle Steps A system development process can follow a number of standard or company specific frameworks, methodologies, modeling tools and languages. Software development life cycle normally comes with some standards which can fulfill the needs of any development team. Five Essential Questions to Answer Before Creating Your First (or second...or third) Website Right after the thought, "I need a website," people usually say, "I need a web designer!" Actually, before even whispering "web design," you need to answer these five questions in as much detail as possible. Once you're clear on your strategy, you can provide better information to your web designer. What YOU Should Know Before Getting A Web Site! Everyday thousands of new businesses make the leap and take their business on line, what about yours? If you haven't already, I'll bet you have thought about it and wondered how much more business you could be doing if you just went on line?and right about then, you wonder what it would take to get your business on line?Here are some things to consider:1. What do I expect my web site to do? The question you must ask yourself first and foremost is, "What do I want my website to do?". 4 Marketing Tips for Resourceful Webmasters! The internet is a sea of knowledge. Getting your information to 'float' by the right audience can be like finding that one special grain of sand on the seashore. Stop Losing Precious Web Site Traffic to the Dreaded World Wide Web Black Hole You work hard to build traffic to your web page. If you are not doing 1 simple step you are loosing a portion of all your web site traffic to the dreaded World Wide Web Black Hole. The Problem with Paypal On Your Web Page When I set up my website I felt paypal was a very simple and easy solution when people wished to purchase my products.For 6 months I was getting 150-200 unique visitors a day, and yet only a few sales every week. How Does Your Website Make Me Feel? When people think about the Internet, they think about technology. When people hear that I am a Website strategy expert, they see me as a "techy type". If You Build It, They Will Come? Building a new website can be a lengthy task. From scratch to the client's specification and then implement additional features and/or changes the client usually has. New Years Resolutions: Is Improving Your Website One of Them? With the New Year upon us yet again, it's time to prepare for the successes of 2005. Did you watch with envy last year as your competitors dominated your industry? Do you think your site is doing just fine because no one has ever called to complain? Well here's some food for thought: 96% of all prospects will click over to your competitor if they encounter a problem on your website. Profitable Websites for Exclusive Industries In the region where my company is located, South Bend, Indiana, the demand for web design and associated services could be described as: leery. It's not that the locale is horribly lacking evolvement technologically; rather that so many proprietors in this area are very uncertain as to what the internet can do and how they can go about forming profitable web sites for their exclusive industries. Allocating Your Web Site's Budget Properly I had a client say something to me the other day that I thought was rather interesting. He mentioned that he almost considers SEO as a marketing expense even though its really a web expense. Ten Major Tips to Develop a Multilingual Web Site to Work If you are living in a country that its native language is something rather than English language, then you may like to develop your website to offer content in the language of your own country.There are millions of websites on the Internet that are all in English language but there are billions of people on the earth that speak in a different language and are not familiar with English language. Product Promoting: Getting The Response When you publish a content site there are times when affiliate products are not the only products you want to recommend.Situations when you'll find you'll want to promote a non-affiliate businesses' product(s). Beautiful Web Sites Seldom Make More Sales Designing an E-commerce Web site is not as simple as having a "pretty" site that is a pleasure to visit. While it is important to have an attractive site, as much thought must be given to functionality as to appearance. Freelance Programming is Easy to Manage There are several reverse bid freelance sites out there. Beyond the big ones, smaller ones are popping up each day. Top 7 Reasons Why Your Business Needs a Website A website provides invaluable advantages for businesses who have one.7 reasons why your business needs a website are:1. Why Your Brick-and-Mortar Biz Needs A Website The internet has taken over our lives with a vengeance, and has changed the way many of us do business. More and more consumers are now doing their shopping online and, unfortunately, some business owners have felt the pinch. Why Your Business Needs a Website Even with the steady growth of the World Wide Web, many businesses do not have an online presence and some think that they do not need to have a presence at all."My business is doing fine as it is. |
home | site map | contact us |