When a form is filled in by a user, the data entered needs to be checked for correct type (number as opposed to letters), completeness, and for security purposes (to prevent hacking attacks).
A programmer quickly learns that bugs come seemingly guaranteed with the package.
There are basically three types of error:
When something is typed wrongly, or punctuation is left out or included incorrectly, in most cases PHP will return an error. This may be a parse error, which stops the script from running at all, or a run time error.
A bug which is hard to detect because as far as the computer is concerned there is nothing wrong with the script. However, the programme is using the wrong data, such as a parameter, or doing something undesirable such as entering a perpetual loop.
The script does not stop running, but fails to complete everything it is written to perform.
Syntax errors can be simple typos in a PHP script to confused query syntaxes. MySQL is good at providing information about where the error lies. With practice (and believe you will get lots of practice with errors) you will learn to interpret the error messages, and identify the difference between invalid variable type to no access to a database.
Where it is more difficult to find the error is in PHP-generated queries in a dynamic site.
Some basic steps to follow:
phpinfo() file on your server, and it will return a file with all the settings.
Place this code in an otherwise blank file, and save it as
phpinfo.php in the root of your domain (or anywhere else you like).
Be sure to remove the file once you have finished. It contains too much information which a hacker could make use of.
It is easy to fall into the trap of editing a different page to the one you are viewing. Do not forget to save any changed files before uploading.
A programmer gets used to cross-browser and device testing. Browsers are not standardised as much as they perhaps should be, and some errors are unique to particular versions of browsers.
Users of a website may not behave in the way a programmer predicted they would. Data validating is a first step in preventing usage errors.
ini_set('display_errors', 1) within php tags will cause the page to report errors when they occur.
Although it is useful to see errors as they occur during development of a site, once the site goes live, it is advisable no to allow errors to be displayed to anyone else. This is not only unaesthetic and smacks of unprofessionalism, it is dangerous, since it reveals too much sensitive information.
Individual expressions may be suppressed by adding a '@' symbol in front of it. for example, if you don't want to display an error when the config file could not be found:
Another way to control the degree to which PHP reports errors is using
error_reporting(0) will show no errors, and
error_reporting(E_ALL) will report every error that occurs.
filename is created if it does not previously exist.
By default the existing file is overwritten. To add to the file without losing pre-existing data, set the
In this case, an error message file is sent to a file named the current date (e.g. 07-10-2015.txt), and any subsequently generated error messages are appended.
LOCK_EX prevents a simultaneous transaction occurring.
Integer validation in PHP: To test that a variable is an integer:
Content © Renewable-Media.com. All rights reserved. Created : August 12, 2014 Last updated :January 10, 2016
The most recent article is:
View this item in the topic:
and many more articles in the subject:
Science resources on ScienceLibrary.info. Games, puzzles, enigmas, internet resources, science fiction and fact, the weird and the wonderful things about the natural world. Have fun while learning Science with ScienceLibrary.info.
1825 - 1895
Thomas Henry Huxley, 1825 - 1895, was an English biologist, most famous for his fervent defence of Darwin's Theory of Evolution.
The factory of the future will have only two employees: a man and a dog. The man will feed the dog. The dog will prevent the man from touching the machines.
Website © renewable-media.com | Designed by: Andrew Bone