Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Lesson Two of Online CGI Course

by Ovid (Cardinal)
on Oct 11, 2000 at 09:28 UTC ( #36186=monkdiscuss: print w/replies, xml ) Need Help??

First, I want to say "thanks" for all of the positive feedback. I have now posted the second lesson, but you should probably start from the beginning again. I've made a lot of changes to how it's laid out and have incorporated as many suggestions as I reasonably could (though some I have skipped due to time pressure).

From now on, if anyone complains about CGI.pm for any reason, just send them to Lesson Two. It's an extended analysis of why alternatives to CGI.pm are usually flawed. That should shut 'em up :)

Thanks to suggestions from ar0n and turnstep, I have gone to CSS. I have tried to lay out the site so that CSS support is not necessary and I think it will look fine in a text-based browser. "Security Checkpoints" now have a red badge symbol next to them. This should make it easier to pay extra attention to the critical parts.

Spelling and grammar errors in the introduction and first lesson have been corrected. Due to a heavy workload at the office, I rushed Lesson Two, so expect it to have more errors than my initial effort. Please let me know what you find and feel free to be extremely anal.

Let me know what you think about the colors and the layout. Suggestions welcome! It's fairly easy to change it, but if your browser doesn't have CSS support, tough beans. However, if your browser does support CSS and the site has problems, let me know! If you can suggest how a CSS newbie like me can fix those problems, I'd be grateful.

Lesson Three may be a long time in coming due to my workload, so please be patient.

Cheers,
Ovid

Join the Perlmonks Setiathome Group or just go the the link and check out our stats.

Replies are listed 'Best First'.
RE: Lesson Two of Online CGI Course
by Dogg (Scribe) on Oct 11, 2000 at 18:53 UTC
    Lesson 2 was very good. Nice work, again.

    I don't have CSS (cascading style sheets, right?) on my Netscape 3.0 (on IRIX 5.3) but it looked really good. No background colors, but the tabbing was perfect and the new little badges looked good.

    Some minor things:
    1) In Lesson 2 in the Why should you use CGI.pm section, I think you're missing a closing ) after "there is more than one way to do it."

    2) In the Query string ignored on POSTs section, in the third line you have "The above code with detect..." and you probably want will instead of with.

    3) In the second paragraph of the Exercise, you're missing the word "what" after "in case you need help remembering..."

    Finally, having been around Perl Monks and read the Book Reviews, I know that Castro's book is horrible. But you never explicitly say it. You use bad code from the book, but someone may think that the book is another reference for CGI programming (which I guess it is, but you probably don't want to promote the book after you've spent all this time trying to teach us good habits). Again, thanks for all the work. It's looking great.
(Ovid) RE: Lesson Two of Online CGI Course
by Ovid (Cardinal) on Oct 11, 2000 at 19:51 UTC
    I'll address the easy one first :)
    Seems odd that the exercise concentrates on the code you're trying to get people NOT to use...
    I had given that some thought and what finally settled it for me is that I didn't want a bunch of people saying "yeah, but I wrote my own CGI parsing routine and it works fine." Now, I can just point them to Lesson Two and not worry about it. In short, how can I tell someone not to do something unless I tell them why?

    Ugh. I just looked at it in Netscape. Bad, bad, bad. I've used absolute position instead of relative positioning and obviously I need to rethink this. Plus, Netscape doesn't allow for the nifty boxes with colored backgrounds that I get with IE. I'm wondering if I'll have to go with simple tables to get those back.

    I can't take advantage of the tilly's Apache solution as it is not my server. Actually, that "it's not my server" situation is frustrating. I'd prefer to let people be able to run those programs from the site, but my ISP doesn't allow CGI scripts. Yuck.

    I think I have a rough handle on most of the problems and I'll work them out as soon as I can.

    Cheers,
    Ovid

    Update: If anyone notices any factual errors, please let me know!!!

    Join the Perlmonks Setiathome Group or just go the the link and check out our stats.

      You should really check out this stylesheet demo site. It renders boxes properly with Netscape 4.5 in WinNT. I also recommend trying different browsers against the W3C CCS Test Suite if you want to know what they can do, it's a great reality check when something you coded doesn't show up right. Western Civ has some interesting if semi-ugly pages with a great browser compatibility matrix. They also have other good stuff nearby. Since imperfect HTML can get really hosed by stylesheets, validate your html. If you use CGI.pm, watch out--it generates a HTML 2.0 doctype descriptor that this validator hates (is this a bug?). You may also want to validate your stylesheet. I hope you find this info useful, even though it ain't strictly Perl.

      Update: The newest versions of CGI.pm can generate a variety of doctype declarations.

      Ovid,

      The material is great; I'll be looking for more. Very educational.

      However, those monks that access the 'Net from behind a firewall that filters out "inappropriate content" may not be able to get to Lesson 2. For example, the company I work for uses something from WebSense, which catgorizes the site containing Lesson 2 as a "Hacking" site and prevents access.

      (Would really like to rant about it, but what's the use?) The solution is easy: read it from home.

      Also, you may wish to consider doing some print tests during your Browser compatibility verifications. I've seen problems with both NS and IE when printing CSS-based pages that can be correctly viewed.

      Hope this helps...

      -- footpad
RE: Lesson Two of Online CGI Course
by agoth (Chaplain) on Oct 11, 2000 at 15:03 UTC
    1. You seem to have a random Tab problem, shebang lines are indented as are any font changes, looks odd in IE5
    2. Seems odd that the exercise concentrates on the code you're trying to get people NOT to use in favour of CGI.pm, why not a using CGI.pm exerice or a conversion exercise to illustrate how much easier things are??

RE: Lesson Two of Online CGI Course (tested browsers)
by ybiC (Prior) on Oct 11, 2000 at 16:17 UTC
    Ovid, your beaucoup++ Online CGI Course renders fine with the following browsers:
    • Netscape 4.75 on Debian 2.2
    • w3m 0.9.5 on Debian 2.2
    • Lynx 2.8.3-1 on Debian 2.2
    • IE 5 on Win2k, NT4 (renders CSS)
    • Opera 4.02 on Win2k, NT4 (renders CSS)
    • Netscape 6pr1 on NT4 (renders CSS)
    • Netscape 4.08 on NT4
    • Netscape 2.02 on DOS/Win3.11
    • IE 2.01 on DOS/Win3.11
    Update: You might consider changing the color of the bold paragraph titles so they're different from links.   Oh yeah, the CSS colors and fonts are nice touch 8^)
        cheers,
        Don   (ybiC)
        striving for Perl Adept
RE (tilly) 1: Lesson Two of Online CGI Course
by tilly (Archbishop) on Oct 11, 2000 at 14:49 UTC
    I am having CSS problems. :-(

    Your security checkpoints are overwriting text. Ditto your inlined <tt> text, it aligns itself without paying attention to the surrounding text. Perhaps that should be a class? Generally mixing inline and external CSS is supposed to be a bad idea.

    As for CSS and browser bugs, what I have seen done with Apache to get around them is that the stylesheet is served by an Apache handler that does a browser detect for things that really cannot be worked around. It works but...

    Oh, and a useful trick to think about. Get a computer with VMWare installed. IE 4, 5, Netscape, Netscape under Linux, etc quickly adds up to a lot of partitions to juggle, and reproducing a setup can be a pain. But keeping that many virtual machines is fairly easy to do for a fraction of the pain. And working from a snapshot you can reproduce situations reliably and easily.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: monkdiscuss [id://36186]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (5)
As of 2020-05-26 10:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If programming languages were movie genres, Perl would be:















    Results (150 votes). Check out past polls.

    Notices?