![]() |
![]() |
Web Design Information |
|
![]() |
![]() |
PHP and Cookies; a Good Mix!Dennis Pallett Introduction Cookies have long been used in PHP scripts, and are a very useful function. But what exactly are cookies Maybe you have used then, but you still dont know exactly what they are. Or you are completely new to cookies It doesnt matter, because in this tutorial I will show you exactly what cookies are, and what they are used for. Cookies in a nutshell Cookies are small pieces of information that is stored on the computer of your visitors. Each browser handles it differently, but most simply store the information in a small text file. Internet Explorer has a special folder, which can be found in your C:Windows or C:WindowsSystem32 folder. You can delete all your cookies, by going to the Options and Clearing Cookies or deleting them by hand. I dont recommend this though. Almost every website uses cookies. If you go to Amazon.com, you will get several cookies. The same goes for CNN.com. Even Google uses cookies! They are extremely useful for temporarily storing information. For example, if you have a login system for your visitors, you could save their userid and password very heavily encrypted! so they are automatically logged in the next time they visit your website. Or you could remember their last visit, and highlight everything that is new. And thats just the beginning. Using Cookies Using cookies in PHP is extremely easy. In fact, there is nothing to it, because of PHPs inbuilt setcookie function http://php.net/setcookie. Have a look at the documentation, and then try the following example: <php // Set a cookie // Cookie name: name // Cookie value: Dennis Pallett // Cookie expire: in 24 hours setcookie name, Dennis Pallett, time + 60*60*24; > If you run the code above, then a cookie will be set. Thats all. The cookie name and value are pretty obvious. The cookie expire is when the cookie expires, or goes away. Simply use the time function http://php.net/time and add the number of seconds you want to have the cookie available to it. In the example I added 60*60*24=86400 seconds, or 24 hours. If you have looked at the documentation, you probably noticed there are additional arguments. As the documentation says, the path is to limit a cookie to a specific path on your web server. This is often used when you run multiple instances of the same script in separate directories. You can safely omit this argument when it doesnt matter if the cookie is available site-wide. There is also the domain argument. This can be used to limit the cookie to a specific sub-domain, e.g. test.example.com. You can also safely ignore this argument, or set it to .example.com note the beginning period, this is essential!. Finally, there is also the secure argument. This argument is only used for cookies that are sent over a secure HTTPS connection SSL. Just ignore this argument, unless youre working with a secure connection. One thing that should be mentioned is that cookies must be set, before you display any HTML/text. Its probably best if you turn on output buffering by putting ob_start http://php.net/ob_start at the top of your page. Now that you have set a cookie, you probably want to retrieve the value as well. After all, that is the whole point of using cookies. Thankfully, as PHP is ever so easy, you can retrieve the same way as you retrieve a GET value. See the following example to retrieve the value of the previous example: <php echo Your name is . $_COOKIE[name]; > This should print "Your name is Dennis Pallett". Theres nothing more to it. Its just that easy! Finally, one thing you probably want to do as well is remove cookies. This is as easy as setting them. Simply change the value of the cookie to FALSE, and change the expire date to -3000 seconds. See the following example: <php setcookie name, FALSE, time-1000; > Checking if cookies are enabled Before you start using cookies, you must make sure your visitor has cookies enabled. This can be done with a simply PHP checking script. Unfortunately, the PHP page needs to reload to check for cookies. But this can be done very transparently, and your visitor should hardly notice anything. The following example will first set a test cookie, then reload the page, and finally check whether cookies are enabled. <php error_reporting E_ALL ^ E_WARNING ^ E_NOTICE; // Check if cookie has been set or not if $_GET[set] != yes { // Set cookie setcookie test, test, time + 60; // Reload page header "Location: checkcookies.phpset=yes"; } else { // Check if cookie exists if !empty$_COOKIE[test] { echo "Cookies are enabled on your browser"; } else { echo "Cookies are <b>NOT</b> enabled on your browser"; } } > Run the code above, and see what the output is. Check if cookies are enabled in your browser. If theyre not enabled, then you can enable them by going to your browsers options. Unfortunately, this is different from each browser, so I cant give you exact instructions. But Google can. Storing Arrays One feature of cookies that is often missed in articles is the ability to story arrays. Cookies can be used to store multi-dimensional arrays, which can be extremely useful to store data. Consider the following code; <php setcookie "name[first]", "Dennis", time + 60*60*24; setcookie "name[last]", "Pallett", time + 60*60*24; > You can then display these two cookies using the following code: <php echo "First Name: " . $_COOKIE[name][first]; echo "<br />Last Name: " . $_COOKIE[name][last]; > The cookie name is an array, and has multiple values. You can even go deeper and have multi-dimensional arrays, e.g. $_COOKIE[name][test][something][value]. You could store whole arrays of data in cookies. But beware that you dont store too much data, there are certain size limits to cookies. In Conclusion... Cookies are really versatile, and can be used for a lot of different purposes. Many websites use cookies, and cookies can really make your website more personalized. Using cookies in PHP isnt hard at all, and you should be able to use them without any difficulty. Before actively using cookies in your website, you must check whether the visitor has enabled them in their browser. If they dont have cookies enabled, you must either redirect to a non-cookies version of your website, or you can make sure your website also works without cookies. You can download a sample script at http://www.phpit.net/demo/php%20and%20cookies/logger.zip, where cookies are used in a somewhat practical way. In this example, there is a logging module, called log.php and a display module, called history.php. Basically, you include the log.php in other PHP pages, and then you can view history.php to lookup all the pages you have viewed and how often. The example uses arrays, and stores them in cookies. The examples in this article can be downloaded at http://www.phpit.net/demo/php%20and%20cookies/examples.zip. If you have a really unique practical way of using cookies, please let me know at dennis [AT] nocertainty [DOT] com. Id really like to hear about interesting ways of using cookies.
| ![]() | ![]() | ![]() | RELATED ARTICLES The Topic Of Your Website The first thing you will have to deal building your website has nothing to do with the web design itself, its me related to content writing but it must be defined and will effect the rest of your actions. So first of all you need to decide what the topic of your future website is. Topic is very closely connected to another web design issue: keywords. The keywords you select will depend upon the topic you have chosen. When thinking about website topic ask yourself a few questions: What is the goal of the site you are making What are you trying to achieve with your site. Specify a goal, preferably in one short sentence. Getting Your Site Seen By Search Engines Is your website listed on search enginesWhen people search for you, does your site show up on page 1 or page 20 of the search engine results How to reach #1 in Yahoo! Part 2 KEI - Keyword Effectiveness Index. The value of a keyword or keyword phrase that helps a web site reach the #1 position in search engines by comparing how often the keyword or keyword phrase is used and comparing it to how many web sites are using that keyword or keyword phrase to market their site. The Secret Benefit Of Accessibility Part 2: A Higher Search Engine Ranking An additional benefit of website accessibility is an improved performance in search engines. The more accessible it is to search engines, the more accurately they can predict what the sites about, and the higher your site will appear in the rankings. Search Engine Optimization Tools Well, I bet many of you have been trying to find tools tohelp you in optimizing your website for search engines. So I thought I would throw together an article with a list of really useful tools and of course ill give you a linkto their websites so you can download them to! The Technical Stuff including how to build a fantastic website, all the elements you need to consider and how to make it work with little or notechnical abilities. 404 Error Pages-What are they and how do you create one We’ve all seen them, you’ve been browsing a website and you click a link and nothing loads apart from the words ‘404 Error’ along with the usual stuff. Website Design Basic Concepts So, whats in a website design anyway And, how do you get a design that is appealing to the broad and varied tastes of all those Internet surfers out there Conceptualize, Build and Publish a Web site Conceptualize, Build and Publish a Web site - Whats required to get started Windows vs Linux : Hosting The Basics of Linux & Windows : Benefits Of Making Your Website Accessible To Disabled Users – Part 2: The Business Case The Disability Discrimination Act states that service providers must not discriminate against disabled people. A website is regarded as a service and therefore comes under this law. If you need More Targeted Visitors to Your Site this Will get the Free Traffic Flowing If you dont know by now one the best ways to attract free traffic to your site is with articles. You find them in your email. You find them on any website that provides useful content. Take a look and you will see they are all formatted the same way. Why a CSS Website Layout Will Make You Money Although CSS layouts have been around for years, they havent become so commonplace until recently. This was basically due to limited browser support especially from Netscape 4 - nowadays though, CSS 2.0 which introduced positioning is compatible with over 99% of browsers out there check out the browser stats over at http://www.thecounter.com/stats/2004/August/browser.php. Web Site Optimization: How To Speed Up Your Web Site By Minimizing Your GIF and PNG Image "Bit-Depth" Web Site Optimization: How To Speed Up Your Web Site By Minimizing Your GIF and PNG Image "Bit-Depth" Having Your Personal Portfolio On The Internet Will Help You Infiltrate The Workforce And Get Your Identity ‘Out There’. If you’re an up and coming graphic/web designer just out of university, you’ll know it’s quite hard to break into the workforce. You have to contact employers one by one, spend your time traveling and lugging your portfolio to their offices. Well, things have changed, and for the better let me tell you. Now you can make your own on-line portfolio on the Internet, and send its web page address to numerous design companies at once so they can all see your work easily. You don’t even have to leave your house and organizations all over the world can access your work easily. Is Reciprocal Linking Dead Is reciprocal Linking dead How to Sell your Website There are hundreds and thousands of websites on the internet today being bought and sold and there are many places you can sell your website such as ebay and website brokers. Though this article we will explore each of these possibilities in greater details. How to successfully market your website... The Essential Conflict in Humans is between our Species Nature and our Consciousness The two parts of our beings: Thinking About Changing to a New Web Hosting Company 5 Steps to Plan Ahead for the Move Perhaps your web hosting company has a technical support group that never answers their email, or their control panel is difficult to use. Maybe your website has been having more downtime than uptime. Whatever the reason you are thinking of switching hosts, make sure you have your ducks in a row before making the move. ![]() |
home | site map |
© 2005 |