Goodies to Go (tm)
May 24, 2004-- Newsletter #286

By Vince Barnes



Goodies to Go (tm)
May 24, 2004--Newsletter #286

This newsletter is part of the internet.com network.
http://www.internet.com
 


Featured this week:

* Goodies Thoughts - Open the Doorway
* Q & A Goodies
* News Goodies
* Goodies Peer Reviews
* Feedback Goodies  
* Windows Tech Goodies  
* And Remember This...

 


 

Goodies Announcement

The new Beyond HTML Goodies book is now available!

 

Go beyond the basics and learn how the pros add and use dynamic HTML features and advanced JavaScript techniques. Beyond HTML Goodies demonstrates dozens of new and different features readers can add to their existing Web pages using HTML and JavaScript. The book starts with simple text and image tips, such as adding a clock to a Web page or causing text to appear when the mouse moves over an image. It gradually builds to more complex tricks, including manipulating forms or working with cookies behind the scenes. Throughout the book, readers enjoy Joe's snappy style and "to the point" discussion of each "goody" in the book.

 

http://books.internet.com/books/0789727803

 

 

Goodies Thoughts - Open the Doorway


In a couple of issues of Goodies To Go recently, I have discussed matters relating to Search Engine Optimization (see http://www.htmlgoodies.com/letters #s 281 & 282.) These issues led to a few feedback questions regarding doorways. Folks would like to know what they are, whether they should use them, and if so, how to use them. I thought I'd at least provide an introductory explanation -- the whole subject is very complex; there are companies that hire people full time to manage their doorways!

The story begins with the manner in which search engines rank pages. Take a look at the situation, for a moment, from the search engine operators point of view. The search engine is not there simply as a benevolent contribution to the betterment of humankind. It is there as a business, intended to make some money and provide its investors with a handsome return on their investments. To do this it must sell advertising. Advertising is worth money based on the number of people it reaches, and the success it has in getting its message across to those people. The more people it can reach, and the more accurately it can target a message to them, the more successful it will be.

More people use Google than any other search engine, even though they were far from the first kids on the block (in fact, some of the first have given up running their own engines and now use Google!) The reason is that Google manages to reliably find what you are looking for based on what you ask. To accomplish this is not a simple task. First, they have to be able to determine what you really want. They have patented mathematical processes for this (and for many if their other functions.) Second, they have to have a reliable (and accurate) index to all the pages that are out there on the web.

To build this index, they have to be able to read web pages (by computer, of course) and determine the nature of the pages' content. To automate this process requires a set of algorithms. A spider (a program that "walks" the web from link to link, etc.) can read the pages and feed them back to an analyzer program. The analyzer then builds the index.

Search engine optimization involves a reverse-engineering process (usually done by a service company and purchased by the end user) that describes and thereby enables the construction of a "perfect" page that is most likely to achieve the highest ranking for a given search request; most preferably, the most common related request. (Phew! - Are you still with me? If you have to read that again, don't feel bad -- I did, and I wrote it!)

There are some problems with the whole picture, however.

The first thing you may notice is that what is "perfect" for the search engine is far from perfect for your client! In designing a fully "SEO" optimized page you have succeeded in bringing the potential customer to your site, but once they're there, you present them with something eminently computer readable, but nonsense to the human reader. Hence the doorway page! A doorway page is a page especially designed to be optimal for search engine ranking, but which, by one or another method, quickly sends the human reader to another, more suitable page.

The complexity is just beginning! Imagine that you are competing with someone else (boy, that's a tough one!) and they see your doorway page become so successful. They could simply copy it, make a minor tweak and submit it to the search engines and (theoretically) be right up there with you. In fact, most of the search engines will recognize the duplication and reject them both, putting you right back where you started. To prevent this you can use "Agent Delivery", "IP Delivery" and "Page Cloaking"..... etc. etc. Suffice it to say that there is more to this subject than we can cover here! Maybe you see why they hire full time staff sometimes!

If you need, however, to get more in depth into this subject, I recommend that you take a look over at Search Engine Watch (http://searchenginewatch.com) -- It's the definitive source for search engine information.
 

Thanks for Reading!
 

 

- Vince Barnes

 

Top

Q & A Goodies

Questions are taken from submissions to our Community Mentors. You can ask a Mentor a question by going to http://www.htmlgoodies.com/mentors.



Q. In a web site that I created I made a catalog order form that has a description of an item, a checkbox to select and a textbox for amount to order. The code I have is:
<form name="form1" method="post" action="mailto:Person@person.net?subject=Catalog Order Form1" enctype = "text/plain">
<p>
<input type = "hidden" name = "recipient"
value = Person@person.net />
<input type = "hidden" name = "subject"
value = "Custodial Order Form1" />
</p>
When the submit button is clicked, it goes to the recepient. But the text/plain shows items selected and amount but it also shows amounts not selected i.e.:
ven no:1111, item description
AMOUNT=5
AMOUNT=
AMOUNT=
AMOUNT=
(Etc)
All I want is for the items selected be shown and not all of the AMOUNT= not selected.

A. This is one reason why Server Side languages such as PHP or Perl are used. They allow you to manipulate the form data before it is emailed out. They also work better because some people do not have their email clients set up properly causing the email not to be sent. Having said that though I think your best bet would be to have two forms - one that gathers the information and a second with a hidden element that is actually sent. When they click the submit button the data from the first form is validated, formatted and then placed in the hidden form hidden element to be sent. Here is an example of one that I put together for someone else:
<html>
<head>
<title>Order Form</title>
<script language="JavaScript">
function calcamt(num)
{
var qtynum=eval("document.myform.qty"+num+".selectedIndex")
var number=eval("document.myform.szeshp"+num+".selectedIndex")
var sizeshape=eval
("document.myform.szeshp"+num+"[number].value.split(',')")
eval("document.myform.price"+num+".value=sizeshape[1] * qtynum")
var pricenum=parseFloat(eval
("document.myform.price"+num+".value"))
var whole = "" + Math.round(pricenum * Math.pow(10, 2));
var decPoint = whole.length - 2;
if(decPoint != 0)
{
result = whole.substring(0, decPoint);
result += ".";
result += whole.substring(decPoint, whole.length);
}
else
{
result = whole;
}
eval("document.myform.price"+num+".value=result")

totalamt()
}
function qtyreset(numa)
{
if(eval("document.myform.item"+numa+".checked"))
{
}
else
{
alert("You must select the item")
return false
}
eval("document.myform.qty"+numa+".selectedIndex=0")
eval("document.myform.price"+numa+".value='0.00'")
}
function totalamt()
{
var tempamt=0
for(i=0;i<3;i++)
{
var tamt=parseFloat(eval("document.myform.price"+i+".value"))
tempamt=tempamt+tamt

}
var whole = "" + Math.round(tempamt * Math.pow(10, 2));
var decPoint = whole.length - 2;
if(decPoint != 0)
{
result = whole.substring(0, decPoint);
result += ".";
result += whole.substring(decPoint, whole.length);
}
else
{
result = whole;
}
document.myform.totamt.value=result
}
function Formcheck()
{
document.sendit.sdata.value="\r Item
Size Qty Price\r"
for(i=0;i<3;i++)
{
if(eval("document.myform.item"+i+".checked"))
{
var fitem=eval("document.myform.item"+i+".value")
var fnum=eval("document.myform.szeshp"+i+".selectedIndex")
var fsize=eval
("document.myform.szeshp"+i+"[fnum].value.split(',')")
var fqtynum=eval("document.myform.qty"+i+".selectedIndex")
var fqty=eval("document.myform.qty"+i+"[fqtynum].value")
var fprice=eval("document.myform.price"+i+".value")
document.sendit.sdata.value+="\r"+fitem+" "+fsize[0]
+"@ "+fsize[1]+" each "+fqty+" "+fprice+"\r"
}
}
document.sendit.sdata.value+="Total
Amount="+document.myform.totamt.value
}
</script>
</head>
<body bgcolor="lightgreen">
<center>
<br>
<h2>Oder Form</h2>
<br>
ITEM &nbsp &nbsp &nbsp &nbsp SIZE/SHAPE &nbsp &nbsp &nbsp &nbsp &nbsp
&nbsp QTY &nbsp &nbsp PRICE &nbsp &nbsp
<form name="myform">
<input type="radio" name="item0" value="Paper Clips"> Paper Clips
<select name="szeshp0" onchange="qtyreset('0')">
<option value="Small Paper Clips ,2.53" selected>Small Paper
Clips</option>
<option value="Large Paper Clips ,3.45">Large Paper Clips</option>
</select>
<select name="qty0" onchange="calcamt('0')">
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="price0" value="0.00" size="10" onfocus="this.blur ()">
<br><br>
<input type="radio" name="item1" value="Pencils "> Pencils &nbsp &nbsp
&nbsp
<select name="szeshp1" onchange="qtyreset('1')">
<option value="No2 Pencils ,1.23" selected>No2 Pencils &nbsp
&nbsp &nbsp &nbsp </option>
<option value="No4 Pencils ,1.74">No4 Pencils </option>
</select>
<select name="qty1" onchange="calcamt('1')">
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="price1" value="0.00" size="10" onfocus="this.blur ()">
<br><br>
<input type="radio" name="item2" value="Staples "> Staples &nbsp &nbsp
&nbsp
<select name="szeshp2" onchange="qtyreset('2')">
<option value="Small Staples ,2.12" selected>Small Staples
</option>
<option value="Large Staples ,2.34">Large Staples &nbsp &nbsp
&nbsp </option>
</select>
<select name="qty2" onchange="calcamt('2')">
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="price2" value="0.00" size="10" onfocus="this.blur ()">
<br><br>
Total
<input type="text" name="totamt" size="10" onfocus="this.blur()">
</form>
<form name="sendit" method="post" action="mailto:mail@me.com?subject=Order
Form" enctype="text/plain" onsubmit="return Formcheck()">
<input type="hidden" name="sdata">
<input type="submit" value="Send It"> &nbsp <input type="reset"
value="Clear Form" onClick="document.myform.reset()">

</form>
</center>
</body>
</html>





Q. I am trying to set up a form. Is there a way to force the "To:" address? I've set up the action="mailto:###", but when I test the form my email keeps opening with all the text filled in, but the "To:" space is blank.

A. The problem is the newer browsers don't support e-mail forms. You have to use a server side script. Your web host may have something you can use. There are also the Perl and ASP tutorials on the site (http://www.htmlgoodies.com) which will help. Check with your web host to find out what languages they support.
[See also http://www.htmlgoodies.com/articles/emailforms1.html
and http://www.htmlgoodies.com/articles/emailformphp.html  -- Ed.]





Q. How do I make three tables all on the same line with a space between them?

A. You make one large table at 100 percent width and a border of zero, with one row then add your three tables in the large tables <td> tags. Play around with the <td> widths to get the size you need. You can add a couple <td> tags with the code &nbsp; which is just a blank space to make some space between the 3 tables. Here is a example of the code:
<table summary="large table" align="center" width="100%" border="0"
cellspacing="0" cellpadding="0">
<tr>
<td width="30%">
<table summary="Menu Table" width="100%" border="1" cellspacing="0"
cellpadding="0">
<tr align="center"><td>Menu</td></tr>
</table>
</td>
<td width="5%">&nbsp;</td>
<td width="30%">
<table summary="Main Table" width="100%" border="1" cellspacing="0"
cellpadding="0">
<tr align="center"><td>Main</td></tr>
</table>
</td>
<td width="5%">&nbsp;</td>
<td width="30%">
<table summary="New Menu Table" width="100%" border="1"
cellspacing="0" cellpadding="0">
<tr align="center"><td>New Menu</td></tr>
</table>
</td>
</tr>
</table>



.

Q. Is there a way to create a menu of hyperlinks over an image? I want a text menu over my left margin images without having to create image links.

A. Use the image as the background of a table cell and place the links in the table cell.





Q. When making an ordered list, is there a way to make the numbers of the ordered list bold without making the entire content of the ordered list bold?

A. Yes, put bold tags around the li tags. <b><li></b>






 

 

 

 

 

Top

News Goodies


Microsoft Highlights New Developer Tools
[May 24, 2004] TechEd: CEO Steve Ballmer promises security, interoperability and a lot less coding with Visual Studio 2005.

Click here to read the article

 

 

 

OSDL to Document Linux Contributions
[May 24, 2004] UPDATED: Linus Torvalds adopts new documentation step, and offers some choice words in a request for discussion about the move.

Click here to read the article



 

Study: Internet Advertising Sets New Record
[May 24, 2004] Internet advertising revenues rose to an all-time quarterly high of nearly $2.3 billion in the first quarter of 2004, according to research estimates from the Interactive Advertising Bureau (IAB) and PricewaterhouseCoopers (PwC).

Click here to read the article

 

 

 

Latest MySQL Fails to Quiet Licensing Critics
[May 24, 2004] PHP and Zend co-founders say FOSS licensing exception does not solve lingering issues.

Click here to read the article

 

 

 

Microsoft Locks Up OEM Support for NAS
[May 24, 2004] Key partners are to add the Microsoft Storage Server feature pack to their network attached storage devices.

Click here to read the article
 

 

 

AMD Revitalizes its Geode Family
[May 24, 2004] The No. 2 chipmaker announces a new line of low power embedded processors complete with a new rating system.

Click here to read the article

 

 

 

Security to Dominate at Microsoft's TechEd
[May 21, 2004] The topic will be everywhere, from chief executive Steve Ballmer's opening keynote to the individual breakout sessions.

Click here to read the article

 

 


Oracle, PeopleSoft CEOs File Depositions
[May 21, 2004] Ellison and Conway answer their subpoenas, as lawyers for third-party rivals haggle over releasing sensitive corporate documents.

Click here to read the article

 

 

 

PalmOne Graffiti Is No Infringement
[May 21, 2004] A U.S. Court invalidates Xerox Corp.'s patent on single-stroke writing.

Click here to read the article


 

 

A New Era Of SOA: Sun and Microsoft
[May 21, 2004] Publicly, the two sides are quiet, but backroom planning on service oriented architectures is fueling their 10-year interoperability roadmap.

Click here to read the article

 

 

 

 


Top

Goodies Peer Reviews


 

Every week a site is selected for review. Each week, reviews of the previous week's selected site are chosen for publication on the HTML Goodies website.

 

The current week's selected site is published in Goodies To Go and in the Peer Reviews section of the website.  Current contact email addresses for submitting your site and for submitting reviews are published in Goodies To Go.

If you would like to have your site reviewed, sign up for the Goodies To Go newsletter in the Navigation Bar on the left side of this page. 

For full details about this program, see http://www.htmlgoodies.com/peerreviews
 

 

 


Top

Feedback Goodies



Did you ever wish your newsletter was an easy two way communications medium? Ploof! It now is!
If you would like to comment on the newsletter or expand/improve on something you have seen in here, you can now send your input to:

mailto:nlfeedback@htmlgoodies.com


We already receive a lot of email every day. This address will help us sort out those relating specifically to this newsletter from all the rest. When you send email to this address it may wind up being included in this section of the newsletter, to be shared with your fellow readers. Please don't send your questions to this address. They should be sent to our mentors: see http://www.htmlgoodies.com/mentors/


For those who are missing Peer reviews: we are once again revising the Peer review program in the hopes of creating a workable solution. The current plan is to move the new Peer Review pages into place in the new year. All those who have been selected for reviews in the past will be featured in the new pages. The new method will make it much easier for your peers to provide feedback and much easier for us to handle the publication side of things. "Watch this space!" It's coming soon!!



Thanks to Gil Heuss for writing in about the Subweb Way piece. Gil wants to point out the Macromedia's product "Contribute" will provide much of the same functionality I described, but doesn't require the FrontPage Extensions. Gil goes on to say that thus "the site can be run on a unix box running Apache server software giving a much more stable and secure environment for the website" -- I'd like to point out that the FrontPage Extensions are also available for Apache on either a Windows or a Linux/Unix platform, and also, you might want to take a look at http://www.enterpriseitplanet.com/security/features/article.php/3083791  -- the folks over at AntiOnline spend a good deal of time and effort sifting fact from fiction in the realm of security!




Thanks again for all your feedback!
 

Top


 


Windows Tech Goodie of the Week:

 

SharePoint Security and .NET Impersonation

http://www.15seconds.com/issue/040511.htm

When implementing custom components that require access to restricted resources, implicit impersonation must be used. Jay Nathan shows how to create a class that makes using .NET Impersonation a snap.


*** AND ***


XML to HTML (via XSL) Classic ASP Sample

http://www.asp101.com/samples/xmlxsl.asp

This little script will take an XML file and an XSL file and combine them to produce whatever output you want. The sample files I used contain some fake sample data and convert it to a basic HTML table, but you can use the same code to transform your data into whatever you want... just change the stylesheet.

 

 

Top
 
 
 
And Remember This . . .


On this day in...


1941 The Bismark Sank HMS Hood

Hitler's most modern warship, DKM Bismark, fired its 38cm canons and penetrated the citadel armor of HMS Hood, the largest of Britains battle cruisers and the pride of the British fleet. The shells exploded in one of the Hood's ammunition stores which in turn exploded, tearing the ship in two. More than 1,400 died on the ship -- there were three survivors. British cruisers had located the Bismark northeast of Iceland and at 5:52 am the Hood opened fire on the Bismark. Bismark returned fire and at 6:00 am hit the munitions store. The hood sank in less than two minutes. DKM Bismark had been damaged badly, however, and was losing fuel. Admiral Gunther Lutjens, commander in chief of the German Fleet, tried to get her to the French coast but she was sighted again by British ships three days later. She was surrounded by a ring of warships and destroyed. 2,300 men, including Lutjens, perished aboard the Bismark.



Today was also the day that in: 1626 Peter Minuit bought Manhatten Island from the indiginous Canarsee Delawares for "the value of 60 Guilders" (about $24); 1689 the English Parliament guaranteed freedom of religion for Protestants; 1809 Dartmoor Prison in England was opened to house French prisoners of war; 1844 Samual Morse tapped out "What hath God wrought?" as the first telegraph message; 1862 Westminster Bridge in London was opened; 1883 the Brooklyn Bridge in New York was opened; 1890 Caprivi succeeded Bismark as Chancellor of Germany; 1900 Britain annexed the Orange Free State; 1902 Britain first celebrated Empire Day; 1916 first day of conscritpion in England; 1935 Swedish Princess Ingrid and Danish Crown Prince Frederick (IX) were married; 1944 Iceland voted to sever all ties with Denmark; 1954 IBM announced a vacuum tube "electronic brain" that could perform 10 million operations per hour (in a PC, 1 megahertz is one million operations per second); 1959 Britain renamed Empire Day to Commonwealth Day; 1968 Mick Jagger and Marianne Faithful were arrested for drug posession; 1976 Concorde made the first commercial SST flight to the US (Washington DC); 1985 10,000 died when a cyclone hit Bangladesh; 1993 Eritrea achieved independence from Ethiopia after 30-year civil war; 1997 actor Tim Allen was arrested for DUI in Michigan;


Born today were: in 1605 patriarch of the Russian Orthodox church, Nikon (Nikita Minin); 1819 British Queen Victoria; 1850 water-color painter Ernest Albert Waterlow (really, that is his name & that's what he did - check out http://www.fineartdealers.co.uk/stock/moreinfo.php3?modcar=93); 1904 British comedian/singer George Formby (William Booth); 1905 Russian writer & Nobel prize winner Mikhail Sholokhov; 1912 British soprano Joan Hammond; 1941 singer/songwriter Robert Zimmerman (Bob Dylan); 1943 actor Gary Burghoff; 1944 singer Patti LaBelle (Patti Holt); 1945 actress Priscilla Presley; 1949 musician John Illsley (Dire Straits); 1955 country singer Rosanne Cash; 1963 actor/dancer Gene Anthony Ray (Fame); 1970 singer Tommy Page;

 


Thanks for reading Goodies to Go!

 

Archive Home Page.



Make a Comment

Loading Comments...

  • Web Development Newsletter Signup

    Invalid email
    You have successfuly registered to our newsletter.
  •  
  •  
  •  
Thanks for your registration, follow us on our social networks to keep up-to-date