The reasons are security and commercial liability. Imagine if you were in your client's place, and the guy you hired was in your shoes! What if this shop starts spending money advertising? There are guidelines well discussed at Perlmonks and elsewhere about what is good to do and not to do, but if your system fails it might 1) incur lost sales for every hour it is down, or 2) enable a breach in security such as publishing passwords or allowing crackers to access other parts of the server.
If it is not such a critical project, then jump in both feet first! But I would recommend doing it with a lot of reading. In particular many free programs available on "scripting" sites out there have well known security holes documented here and elsewhere. Probably better I'd think to keep things very simple and roll your own.
I think the main parts of your program will have to be getting the form data, neutralizing dangerous data that might be in it (such as checking length and removing pipe marks, line feeds, and control characters), and appending the data to a text file while maintaining/checking a lock on it in case of frequent access. There are also messages you will want to supply to the visitor such as confirmation of the data and lacking information in required fields. The rest of the processing can be done manually, for example by downloading a tab-separated file into a spreadsheet program.
But if you have experience programming in other fields I would guess that 2 months, including learning Perl from scratch and doing a lot of studying of the issues, is probably enough time to get up to speed and be confident of what you are doing while keeping your client happy and involved. As time goes on you will be pleasantly surprised by how much you are able to do, but that power is directly related to how solid your foundation of understanding is. Good luck!
In reply to Re: how do I use Perl with CGI?
by mattr
in thread how do I use Perl with CGI?
by deels
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |