PHP: Difference between revisions

173 bytes added ,  06:03, 19 May 2018
m
Changing sequence of existing content
m (Changing sequence of existing content)
Line 6: Line 6:


The basics for content of this page were initiated by David Jamieson (DAJ) in various places in the Cumulus Wiki and support forum, his content has been assembled together, and built upon, for the current article.
The basics for content of this page were initiated by David Jamieson (DAJ) in various places in the Cumulus Wiki and support forum, his content has been assembled together, and built upon, for the current article.
== When to use JS (Javascript) and when to use PHP ? ==
*Using PHP is much faster (usually); as all the work, of deciding what to include on the web page, is done on the web-server (which should be fast) and only the resulting HTML is sent to the browser.
*JavaScript is slower as the initial page, then all the JS code, is sent to the browser; then code is executed on the PC, and then the page is updated.
*A user may have JS disabled, so you might need to consider how your page will work without it (see above).
*If you do not have PHP on your web-server you need to use JS!


== Using JavaScript ==
== Using JavaScript ==
Line 15: Line 22:
A quick comparison between pure HTML and HTML with JavaScript can be seen from [[Editing_content_of_a_webpage_using_either_HTML_or_Script|this example]].  Essentially, the Browser produces a page structure by reading the HTML, and then the browser will run the JavaScript instructions as it meets them (or a call to the separate file containing that code) and that can be interpreted to modify what is seen on the web page.  A user can normally ask their browser to see the original HTML (display source) and to display the script that is modifying that. The user may be able to stop the script from running or run a different script, so JavaScript can have security implications. It can however be an advantage that code can be run easily to update part of a page, leaving the rest. A disadvantage is that different browsers may offer different versions of JavaScript, so the page designer cannot make assumptions about what JavaScript code will be available to all potential users.
A quick comparison between pure HTML and HTML with JavaScript can be seen from [[Editing_content_of_a_webpage_using_either_HTML_or_Script|this example]].  Essentially, the Browser produces a page structure by reading the HTML, and then the browser will run the JavaScript instructions as it meets them (or a call to the separate file containing that code) and that can be interpreted to modify what is seen on the web page.  A user can normally ask their browser to see the original HTML (display source) and to display the script that is modifying that. The user may be able to stop the script from running or run a different script, so JavaScript can have security implications. It can however be an advantage that code can be run easily to update part of a page, leaving the rest. A disadvantage is that different browsers may offer different versions of JavaScript, so the page designer cannot make assumptions about what JavaScript code will be available to all potential users.


= Using PHP Hypertext Pre-processor =
==== What about Ajax? ====
 
Ajax is, in essence, a concept not a new language. It's basically JavaScript being used to request information, and it works in the background while you are viewing a page on the browser. The most common use is to use the script to update just one part of a web page without reloading the whole page, but that does require a greater technical level in script writing than a novice.
 
== Using PHP Hypertext Pre-processor ==


Original material by DAJ, but moved to this new page; on a former web-site he used PHP to generate his page, JavaScript to update his page frequently making use of information gathered using AJAX method and the jQuery library of JavaScript code to actually make his script browser independent - see [http://sandaysoft.com/forum/viewtopic.php?f=14&t=5306 support forum].
Original material by DAJ, but moved to this new page; on a former web-site he used PHP to generate his page, JavaScript to update his page frequently making use of information gathered using AJAX method and the jQuery library of JavaScript code to actually make his script browser independent - see [http://sandaysoft.com/forum/viewtopic.php?f=14&t=5306 support forum].
Line 23: Line 34:
Many web servers support the PHP scripting language, this means that the web server will parse the contents and obey all the script instructions to generate a pure HTML page that it forwards to a user agent (e.g. browser).
Many web servers support the PHP scripting language, this means that the web server will parse the contents and obey all the script instructions to generate a pure HTML page that it forwards to a user agent (e.g. browser).


=== More about PHP ===
=== Learning More about PHP ===


PHP regularly issues new versions, with major and minor upgrades. You need to ensure that your development server and your production server use the same version, or that you only use features that are common to both versions.  If somebody else runs your web server, you need to track what PHP version they use.  But since the PHP parser creates a HTML page to pass to each user, it does not matter what any user has on their device.
PHP regularly issues new versions, with major and minor upgrades. If you are writing a PHP script, ensure that your development server, and whichever production server might run your script, use the same version, or that you only use features that are common to both versions.  If somebody else runs your web server, or you are writing a script for somebody else to use, you need to track what PHP version they use.  But since the PHP parser creates a HTML page to pass to each user, it does not matter what any end-user has on their device for viewing the resulting web page.


There are volumes of information available on writing PHP scripts, both in your local bookshop, or library, and on the web. Some of these books cover a database query language and maybe running a web server as well as PHP.  
There are volumes of information available on writing PHP scripts, both in your local bookshop, or library, and on the web. Some of these books cover a database query language and maybe running a web server as well as PHP.  
Line 36: Line 47:
One possible advantage of this type of script is that by default the script cannot be seen (unless the developer has added some code ([http://sandaysoft.com/forum/viewtopic.php?f=14&t=16425 see this forum topic]) allowing a query-string to be added to the url asking for some or all of the PHP source to be shown to the browser). This makes for a more secure script, because it only runs on the web site server.  For instance if information is read from a database or in another way involves a password of some kind, all that code can be hidden, the end-user then has no way to modify the script to get information that should not be seen by others. A disadvantage is that it can be more complicated to update information on a page, requiring the whole page to be regenerated. (Consequently, a mix of scripts may be used with updating by AJAX or JSON, added to the PHP that generates the basic page. That is beyond the scope of this article).
One possible advantage of this type of script is that by default the script cannot be seen (unless the developer has added some code ([http://sandaysoft.com/forum/viewtopic.php?f=14&t=16425 see this forum topic]) allowing a query-string to be added to the url asking for some or all of the PHP source to be shown to the browser). This makes for a more secure script, because it only runs on the web site server.  For instance if information is read from a database or in another way involves a password of some kind, all that code can be hidden, the end-user then has no way to modify the script to get information that should not be seen by others. A disadvantage is that it can be more complicated to update information on a page, requiring the whole page to be regenerated. (Consequently, a mix of scripts may be used with updating by AJAX or JSON, added to the PHP that generates the basic page. That is beyond the scope of this article).


==== What about Ajax? ====


Ajax is, in essence, a concept not a new language. It's basically JavaScript being used to request information, and it works in the background while you are viewing a page on the browser. The most common use is to use the script to update just one part of a web page without reloading the whole page, but that does require a greater technical level in script writing than a novice.
==== When to use JS (Javascript) or PHP ? ====
*Using PHP is much faster (usually); as all the work, of deciding what to include on the web page, is done on the web-server (which should be fast) and only the resulting HTML is sent to the browser.
*JavaScript is slower as the initial page, then all the JS code, is sent to the browser; then code is executed on the PC, and then the page is updated.
*A user may have JS disabled, so you might need to consider how your page will work without it (see above).
*If you do not have PHP on your web-server you need to use JS!


== Using PHP in Cumulus templates ==
=== Using PHP in Cumulus templates ===


This approach incorporates some PHP script in a page that still contains Cumulus web tags so still requires processing by Cumulus.   
This approach incorporates some PHP script in a page that still contains Cumulus web tags so still requires processing by Cumulus.   
Line 58: Line 60:




=== An example of a Cumulus template using PHP ===
==== An example of a Cumulus template using PHP ====


In the UK vehicle headlights must be used between half-an hour after sunset to half-an-hour before sunrise, so maybe you want to modify a standard "xxxxT.htm" page that is currently processed into "xxxx.htm" and it has sunrise/sunset times on it.  Change it to be processed into "xxxx.php" instead and incorporate 2 new chunks of code:
In the UK vehicle headlights must be used between half-an hour after sunset to half-an-hour before sunrise, so maybe you want to modify a standard "xxxxT.htm" page that is currently processed into "xxxx.htm" and it has sunrise/sunset times on it.  Change it to be processed into "xxxx.php" instead and incorporate 2 new chunks of code:
Line 94: Line 96:
If you want sunrise, sunset, darkness start, and darkness end to all refer to the same day, you will probably choose to use PHP functions for sunrise, sunset rather than Cumulus web tags.  The example above was just to show what can be done, not what you should do!
If you want sunrise, sunset, darkness start, and darkness end to all refer to the same day, you will probably choose to use PHP functions for sunrise, sunset rather than Cumulus web tags.  The example above was just to show what can be done, not what you should do!


== Using PHP scripts not processed by Cumulus ==
=== Using PHP scripts not processed by Cumulus ===


#A more efficient approach, this is a bigger implementation change, is to set Cumulus to process just [[Php_webtags| something like this file]] to read the Cumulus web tags you want to use (some may have parameters to indicate what period to use or how to format the date they output) and then the processed file will create PHP variables/arrays for your other PHP web pages to use.
#A more efficient approach, this is a bigger implementation change, is to set Cumulus to process just [[Php_webtags| something like this file]] to read the Cumulus web tags you want to use (some may have parameters to indicate what period to use or how to format the date they output) and then the processed file will create PHP variables/arrays for your other PHP web pages to use.
Line 168: Line 170:
</pre>
</pre>


== Other PHP examples ==
=== Other PHP examples ===
PHP is commonly used with a database, Cumulus MX can append log data to a database, and so PHP will enhance what you can do with web pages.  Even if you are using Cumulus 1 you may load the [[dayfile.txt|daily summary log file]] (and possibly other log files) into a database. See [[Daily_Summary]] article for several PHP scripts that can be used if you have a table with daily summary values on your database.
PHP is commonly used with a database, Cumulus MX can append log data to a database, and so PHP will enhance what you can do with web pages.  Even if you are using Cumulus 1 you may load the [[dayfile.txt|daily summary log file]] (and possibly other log files) into a database. See [[Daily_Summary]] article for several PHP scripts that can be used if you have a table with daily summary values on your database.


5,838

edits