PHP On-The-Fly!

Written by Dennis Pallett


Continued from page 1

</html> Now go to http://www.yourdomain.com/client1.php and click onrepparttar button that says 'Update date'. The date will update, withoutrepparttar 105081 page having to be reloaded. This is done withrepparttar 105082 XML HTTP Request object. This example can also be viewed online at http://www.phpit.net/demo/php%20on%20the%20fly/client1.php.

Example 2 Let's try a more advanced example. Inrepparttar 105083 following example,repparttar 105084 visitor can enter two numbers, and they are added up by PHP (and not by JavaScript). This showsrepparttar 105085 true power of PHP andrepparttar 105086 XML HTTP Request Object.

This example usesrepparttar 105087 same script.js as inrepparttar 105088 first example, so you don't need to create this again. First, copyrepparttar 105089 code below and paste it in a file called 'server2.php':

 <?php

// Get numbers $num1 = intval($_GET['num1']); $num2 = intval($_GET['num2']);

// Return answer echo ($num1 + $num2);

?>

And then, copyrepparttar 105090 code below, and paste it in a file called 'client2.php'. Please note though that you need to editrepparttar 105091 line that says 'http://www.yourdomain.com/server2.php' torepparttar 105092 correct location of server2.php on your server.
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"> <html> <head> <title>Example 2</title> <script src="script.js" type="text/javascript"></script>

<script type="text/javascript"> function calc() { num1 = document.getElementById ('num1').value; num2 = document.getElementById ('num2').value;

var element = document.getElementById('answer'); xmlhttp.open("GET", 'http://www.yourdomain.com/server2.php?num1=' + num1 + '&num2=' + num2); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { element.value = xmlhttp.responseText; } } xmlhttp.send(null); } </script> </head>

<body> Userepparttar 105093 below form to add up two numbers. The answer is calculated by a PHP script, and <em>not</em> with JavaScript. What'srepparttar 105094 advantage to this? You can execute server-side scripts (PHP) without having to refreshrepparttar 105095 page.<br /><br />

<input type="text" id="num1" size="3" /> + <input type="text" id="num2" size="3" /> = <input type="text" id="answer" size="5" />

<input type="button" value="Calculate!" OnClick="calc();" /> </body>

</html>

When you run this example, you can add up two numbers, using PHP and no reloading at all! If you can't get this example to work, then have a look on http://www.phpit.net/demo/php%20on%20the%20fly/client3.php to seerepparttar 105096 example online.

Any Disadvantages...? There are only two real disadvantages to this system. First of all, anyone who has JavaScript turned off, or their browser doesn't supportrepparttar 105097 XML HTTP Request Object will not be able to run it. This means you will have to make sure that there is a non-JavaScript version, or make sure all your visitors have JavaScript enabled (e.g. an Intranet application, where you can require JS).

Another disadvantage isrepparttar 105098 fact that it breaks bookmarks. People won't be able to bookmark your pages, if there is any dynamic content in there. But if you're creating a PHP application (and not a PHP website), then bookmarks are probably not very useful anyway.

Conclusion As I've shown you, using two very simple examples, it is entirely possible to execute PHP scripts, without having to refreshrepparttar 105099 page. I suggest you read more aboutrepparttar 105100 XML HTTP Request Object and its capabilities.

The things you can do are limitless. For example, you could create an extremely neat paging system, that doesn't require reloading at all. Or you could create a GUI for your PHP application, which behaves exactly like Windows XP. Just think about it!

Be aware though that JavaScript must be enabled for this to work. Without JavaScript this will be completely useless. So make sure your visitors support JavaScript, or create a non-JavaScript version as well.

Dennis Pallett is a young tech writer, with much experience in ASP, PHP and other web technologies. He enjoys writing, and has written several articles and tutorials. To find more of his work, look at his websites at http://www.phpit.net, http://www.aspit.net and http://www.ezfaqs.com


PHP and Cookies; a good mix!

Written by Dennis Pallett


Continued from page 1

<?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,repparttar 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 reloadrepparttar 105079 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.php?set=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"; } } ?>

Runrepparttar 105080 code above, and see whatrepparttar 105081 output is. Check if cookies are enabled in your browser. If they're not enabled, then you can enable them by going to your browser's options. Unfortunately, this is different from each browser, so I can't give you exact instructions. But Google can.

Storing Arrays One feature of cookies that is often missed in articles isrepparttar 105082 ability to story arrays. Cookies can be used to store multi-dimensional arrays, which can be extremely useful to store data.

Considerrepparttar 105083 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 usingrepparttar 105084 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 don't 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 isn't hard at all, and you should be able to use them without any difficulty.

Before actively using cookies in your website, you must check whetherrepparttar 105085 visitor has enabled them in their browser. If they don't 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 includerepparttar 105086 log.php in other PHP pages, and then you can view history.php to lookup allrepparttar 105087 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. I'd really like to hear about interesting ways of using cookies.

Dennis Pallett is a young tech writer, with much experience in ASP, PHP and other web technologies. He enjoys writing, and has written several articles and tutorials. To find more of his work, look at his websites at http://www.phpit.net, http://www.aspit.net and http://www.ezfaqs.com


    <Back to Page 1
 
ImproveHomeLife.com © 2005
Terms of Use