 |

Web DevelopmentThis section provides useful information and resources for web designers and web developers.
Last Change
This section provides HTML and XHTML resources which you will hopefully find useful. Over time, we hope to turn this section into a comprehensive reference for both beginners and experts. We are trying to provide working solutions for professional applications. The HTML and XHTML coding examples in this section are taken from real projects. Links to external websites are hand-picked and we only recommend literature which we frequently use ourselves.
Last Change
When authoring HTML or XHTML documents, one frequently needs to figure out how to display special characters. See below for some links to useful HTML character set and named entity reference pages.
Web-safe color codes include the following RGB values:
0x00
0x33
0x66
0x99
0xCC
0xFF
To view the following color tables, your browser has to support background colors in table cells.
Sort Order R-G-B
Sort Order R-G-B
#00**** 0,*,* |
#00**00 0,*,0 |
#00**33 0,*,51 |
#00**66 0,*,102 |
#00**99 0,*,153 |
#00**CC 0,*,204 |
#00**FF 0,*,255 |
0000** 0,0,* |
#000000 |
#000033 |
#000066 |
#000099 |
#0000CC |
#0000FF |
0033** 0,51,* |
#003300 |
#003333 |
#003366 |
#003399 |
#0033CC |
#0033FF |
0066** 0,102,* |
#006600 |
#006633 |
#006666 |
#006699 |
#0066CC |
#0066FF |
0099** 0,153,* |
#009900 |
#009933 |
#009966 |
#009999 |
#0099CC |
#0099FF |
00CC** 0,204,* |
#00CC00 |
#00CC33 |
#00CC66 |
#00CC99 |
#00CCCC |
#00CCFF |
00FF** 0,255,* |
#00FF00 |
#00FF33 |
#00FF66 |
#00FF99 |
#00FFCC |
#00FFFF |
#33**** 51,*,* |
#33**00 51,*,0 |
#33**33 51,*,51 |
#33**66 51,*,102 |
#33**99 51,*,153 |
#33**CC 51,*,204 |
#33**FF 51,*,255 |
3300** 51,0,* |
#330000 |
#330033 |
#330066 |
#330099 |
#3300CC |
#3300FF |
3333** 51,51,* |
#333300 |
#333333 |
#333366 |
#333399 |
#3333CC |
#3333FF |
3366** 51,102,* |
#336600 |
#336633 |
#336666 |
#336699 |
#3366CC |
#3366FF |
3399** 51,153,* |
#339900 |
#339933 |
#339966 |
#339999 |
#3399CC |
#3399FF |
33CC** 51,204,* |
#33CC00 |
#33CC33 |
#33CC66 |
#33CC99 |
#33CCCC |
#33CCFF |
33FF** 51,255,* |
#33FF00 |
#33FF33 |
#33FF66 |
#33FF99 |
#33FFCC |
#33FFFF |
#66**** 102,*,* |
#66**00 102,*,0 |
#66**33 102,*,51 |
#66**66 102,*,102 |
#66**99 102,*,153 |
#66**CC 102,*,204 |
#66**FF 102,*,255 |
6600** 102,0,* |
#660000 |
#660033 |
#660066 |
#660099 |
#6600CC |
#6600FF |
6633** 102,51,* |
#663300 |
#663333 |
#663366 |
#663399 |
#6633CC |
#6633FF |
6666** 102,102,* |
#666600 |
#666633 |
#666666 |
#666699 |
#6666CC |
#6666FF |
6699** 102,153,* |
#669900 |
#669933 |
#669966 |
#669999 |
#6699CC |
#6699FF |
66CC** 102,204,* |
#66CC00 |
#66CC33 |
#66CC66 |
#66CC99 |
#66CCCC |
#66CCFF |
66FF** 102,255,* |
#66FF00 |
#66FF33 |
#66FF66 |
#66FF99 |
#66FFCC |
#66FFFF |
#99**** 153,*,* |
#99**00 153,*,0 |
#99**33 153,*,51 |
#99**66 153,*,102 |
#99**99 153,*,153 |
#99**CC 153,*,204 |
#99**FF 153,*,255 |
9900** 153,0,* |
#990000 |
#990033 |
#990066 |
#990099 |
#9900CC |
#9900FF |
9933** 153,51,* |
#993300 |
#993333 |
#993366 |
#993399 |
#9933CC |
#9933FF |
9966** 153,102,* |
#996600 |
#996633 |
#996666 |
#996699 |
#9966CC |
#9966FF |
9999** 153,153,* |
#999900 |
#999933 |
#999966 |
#999999 |
#9999CC |
#9999FF |
99CC** 153,204,* |
#99CC00 |
#99CC33 |
#99CC66 |
#99CC99 |
#99CCCC |
#99CCFF |
99FF** 153,255,* |
#99FF00 |
#99FF33 |
#99FF66 |
#99FF99 |
#99FFCC |
#99FFFF |
#CC**** 204,*,* |
#CC**00 204,*,0 |
#CC**33 204,*,51 |
#CC**66 204,*,102 |
#CC**99 204,*,153 |
#CC**CC 204,*,204 |
#CC**FF 204,*,255 |
CC00** 204,0,* |
#CC0000 |
#CC0033 |
#CC0066 |
#CC0099 |
#CC00CC |
#CC00FF |
CC33** 204,51,* |
#CC3300 |
#CC3333 |
#CC3366 |
#CC3399 |
#CC33CC |
#CC33FF |
CC66** 204,102,* |
#CC6600 |
#CC6633 |
#CC6666 |
#CC6699 |
#CC66CC |
#CC66FF |
CC99** 204,153,* |
#CC9900 |
#CC9933 |
#CC9966 |
#CC9999 |
#CC99CC |
#CC99FF |
CCCC** 204,204,* |
#CCCC00 |
#CCCC33 |
#CCCC66 |
#CCCC99 |
#CCCCCC |
#CCCCFF |
CCFF** 204,255,* |
#CCFF00 |
#CCFF33 |
#CCFF66 |
#CCFF99 |
#CCFFCC |
#CCFFFF |
#FF**** 255,*,* |
#FF**00 255,*,0 |
#FF**33 255,*,51 |
#FF**66 255,*,102 |
#FF**99 255,*,153 |
#FF**CC 255,*,204 |
#FF**FF 255,*,255 |
FF00** 255,0,* |
#FF0000 |
#FF0033 |
#FF0066 |
#FF0099 |
#FF00CC |
#FF00FF |
FF33** 255,51,* |
#FF3300 |
#FF3333 |
#FF3366 |
#FF3399 |
#FF33CC |
#FF33FF |
FF66** 255,102,* |
#FF6600 |
#FF6633 |
#FF6666 |
#FF6699 |
#FF66CC |
#FF66FF |
FF99** 255,153,* |
#FF9900 |
#FF9933 |
#FF9966 |
#FF9999 |
#FF99CC |
#FF99FF |
FFCC** 255,204,* |
#FFCC00 |
#FFCC33 |
#FFCC66 |
#FFCC99 |
#FFCCCC |
#FFCCFF |
FFFF** 255,255,* |
#FFFF00 |
#FFFF33 |
#FFFF66 |
#FFFF99 |
#FFFFCC |
#FFFFFF |
Tips for using HTML when composing Emails.
Information and utilities for composing HTML Emails:
Email Templates:
The literature listed in this section is hand-picked. We only recommend books which we frequently use ourselves. You can use the Amazon links provided for online ordering if you are interested in purchasing any of the books. Simply chose the link to the Amazon website closest to you. Amazon.co.uk is located in the United Kingdom, Amazon.com is located in the United States, and Amazon.de is located in Germany.
Recommended reading on HTML and XHTML:
 |
DHTML and CSS for the World Wide Web: Visual QuickStart Guide (Visual QuickStart Guide)
Language: English
Author: Jason Cranford Teague
Publisher: Peachpit Press
Published: May 2001
ISBN: 0201730847
Paperback - 603 Pages
|
This section provides CSS (Cascading Style Sheet) resources which you will hopefully find useful. Over time, we hope to turn this section into a comprehensive reference for both beginners and experts. We are trying to provide working solutions for professional applications. The scripts and code snippets in this section are taken from real projects. Links to external websites are hand-picked and we only recommend literature which we frequently use ourselves.
Last Change
This section provides JavaScript resources which you will hopefully find useful. Over time, we hope to turn this section into a comprehensive reference for both beginners and experts. We are trying to provide working solutions for professional applications. The scripts and code snippets in this section are taken from real projects. Links to external websites are hand-picked and we only recommend literature which we frequently use ourselves.
Last Change
The JavaScript print() function can be used to print the currently loaded web document, exactly as if the user had activated the browser's function:
print();
The print() function can be used to provide a link:
<a href="javascript:print();">Print this Page</a>
Working example:
Print this Page
The AddFavorite() JavaScript function can be used in Internet Explorer (version 4 or higher) to add a web address (with a title) to the Internet Explorer favorites. AddFavorite() activates the
function from the
Internet Explorer menu with the given parameters.
The following AddFavorite() call can be used to add the BME website address with its title to the Internet Explorer favorites:
window.external.AddFavorite( 'http://www.bme.ie', 'BME - Baumeister Mediasoft Engineering' );
The following AddFavorite() call can be used to add the currently loaded page to the Internet Explorer favorites:
window.external.AddFavorite(location.href, document.title);
A web browser compatibility check such as
if (window.external) { window.external.AddFavorite(location.href, document.title); }
is recommended since AddFavorite() is only available in Internet Explorer (version 4 or higher).
onclick() can be used to provide a clickable link to the AddFavorite() function call. The following JavaScript code displays a link for adding the currently loaded page to the Internet Explorer favorites:
<script type="text/javascript"> <!--//--><![CDATA[//><!-- if (window.external)
{
document.write(
'<a href="#"'
+ ' onclick="window.external.AddFavorite(location.href,document.title);">'
+ 'Add this Page to your Favorites...</a>'
);
}
//--><!]]> </script>
The setHomePage() JavaScript function uses a DHTML behavior in Internet Explorer (version 5 or higher) to set the user's Homepage. setHomePage() can be applied to objects with the following style attribute:
behavior:url(#default#homepage)
setHomePage() expects a web address as argument. The following setHomePage() call uses the BME website address:
this.setHomePage('http://www.bme.ie')
The following JavaScript statements can be used to set the Homepage address to the URL of the currently loaded web page:
this.style.behavior='url(#default#homepage)'; this.setHomePage(location.href);
A web browser compatibility check such as
if (window.external) { this.style.behavior='url(#default#homepage)'; this.setHomePage(location.href); }
is recommended since setHomePage() is only available in Internet Explorer (version 5 or higher).
onclick() can be used to provide a clickable link to the setHomePage() function call. The following JavaScript code displays a link for setting the Homepage address to the URL of the currently loaded web page. The required behaviour attribute is assigned through a
style attribute within the
span tag:
<script type="text/javascript"> <!--//--><![CDATA[//><!-- if (window.external)
{
document.write(
'<span style="color:blue;cursor:hand;behavior:url(#default#homepage);"'
+ ' onclick="this.setHomePage(location.href);">'
+ 'Make this Page your Homepage...'
+ '</span>'
);
}
//--><!]]> </script>
For security reasons, setHomePage() causes Internet Explorer to activate a confirmation dialog for changing the Homepage setting.
It's quite simple to display an Email link for sending a page or a link to someone else:
<a href="mailto:?subject=Web Address&body=This might interest you: http://www.bme.ie">Send BME Web Address to a Friend</a>
The
mailto: protocol is used. This simply starts the user's Email client program with the given parameters for the Email
subject and the Email
body. Since there is no web address for the recipient specified between
mailto: and
?, the user can fill this in (e.g., with some address from her/his address book).
The following JavaScript code takes this a bit further:
var sSubject = 'Interesting Web Page';
var sBody = 'Hi,\\n\\nthis might interest you:\\n' + location.href;
var sDisplay = 'Send this Page to a Friend';
document.write(
'<a href="mailto:'
+ '?subject=' + escape(sSubject)
+ '&body=' + escape(sBody)
+ '">' + sDisplay + '</a>'
);
In the code above, the
sSubject (subject) and
sBody (body) variables/parameters are encoded with the
escape function to allow for special characters such as newlines to be used without problems.
Working examples:
Send BME Website Link to a Friend
Web-safe color codes include the following RGB values:
0x00
0x33
0x66
0x99
0xCC
0xFF
The following JavaScript generates a table for displaying the websafe colors:
<script type="text/javascript"> <!--//--><![CDATA[//><!-- // Color code table
c = new Array('00', '33', '66', '99', 'cc', 'ff');
// Start color table
t = '<table border="1" cellpadding="6" style="border-collapse:collapse;">';
// Iterate red color
for (r = 0; r < 6; r++)
{
// Iterate green color
for (g = 0; g < 6; g++)
{
// Start color table row
t += '<tr>';
// Iterate blue color
for (b = 0; b < 6; b++)
{
// Get RGB (background) color code
L = '#' + c[r] + c[g] + c[b];
// Get alternative/tooltip text
A = L + ' = RGB('
+ parseInt('0x' + c[r]) + ', '
+ parseInt('0x' + c[g]) + ', '
+ parseInt('0x' + c[b]) + ')'
;
// Get "inverted" RGB (foreground) color code
F = '#' + c[5 - r] + c[5 - g] + c[5 - b];
// Color table cell
t += '<td align="center"'
+ ' style="'
+ 'background-color:' + L + ';'
+ 'color:' + F + ';'
+ 'font-family:Courier New;'
+ 'cursor:hand;'
+ '"'
+ ' title="' + A + '"'
+ ' onclick="alert(\'' + A + '\');"'
+ ' onmouseover="window.status=\'' + A + '\';"'
+ ' onmouseout="window.status=\' \';"'
+ '>' + L + '</td>'
;
}
// End color table row
t += '</tr>';
}
}
// Display color table
document.write(t + '</table>');
//--><!]]> </script>
Output/Display
The following JavaScript statement loads the MIDI file
tune.mid to the default user system application for processing and/or playing MIDI files:
location.href='tune.mid';
This statement can easily be used in a hypertext link:
<a href="javascript:location.href='tune.mid';">Play MIDI Tune</a>
The following example provides a form with a button for activating the same statement through onclick():
<form> <input type="button" value="Play MIDI Tune" onclick="location.href='tune.mid';" /> </form>
Working example:
Thanks to Suzanne Rhatigan for preparing this little tune.
The AddFavorite() JavaScript function can be used in Internet Explorer (version 4 or higher) to add a web address (with a title) to the Internet Explorer favorites. AddFavorite() activates the
function from the
Internet Explorer menu with the given parameters.
The following AddFavorite() call can be used to add the BME website address with its title to the Internet Explorer favorites:
window.external.AddFavorite( 'http://www.bme.ie', 'BME - Baumeister Mediasoft Engineering' );
The following AddFavorite() call can be used to add the currently loaded page to the Internet Explorer favorites:
window.external.AddFavorite(location.href, document.title);
A web browser compatibility check such as
if (window.external) { window.external.AddFavorite(location.href, document.title); }
is recommended since AddFavorite() is only available in Internet Explorer (version 4 or higher).
onclick() can be used to provide a clickable link to the AddFavorite() function call. The following JavaScript code displays a link for adding the currently loaded page to the Internet Explorer favorites:
<script type="text/javascript"> <!--//--><![CDATA[//><!-- if (window.external)
{
document.write(
'<a href="#"'
+ ' onclick="window.external.AddFavorite(location.href,document.title);">'
+ 'Add this Page to your Favorites...</a>'
);
}
//--><!]]> </script>
The JavaScript print() function can be used to print the currently loaded web document, exactly as if the user had activated the browser's function:
print();
The print() function can be used to provide a link:
<a href="javascript:print();">Print this Page</a>
Working example:
Print this Page
The setHomePage() JavaScript function uses a DHTML behavior in Internet Explorer (version 5 or higher) to set the user's Homepage. setHomePage() can be applied to objects with the following style attribute:
behavior:url(#default#homepage)
setHomePage() expects a web address as argument. The following setHomePage() call uses the BME website address:
this.setHomePage('http://www.bme.ie')
The following JavaScript statements can be used to set the Homepage address to the URL of the currently loaded web page:
this.style.behavior='url(#default#homepage)'; this.setHomePage(location.href);
A web browser compatibility check such as
if (window.external) { this.style.behavior='url(#default#homepage)'; this.setHomePage(location.href); }
is recommended since setHomePage() is only available in Internet Explorer (version 5 or higher).
onclick() can be used to provide a clickable link to the setHomePage() function call. The following JavaScript code displays a link for setting the Homepage address to the URL of the currently loaded web page. The required behaviour attribute is assigned through a
style attribute within the
span tag:
<script type="text/javascript"> <!--//--><![CDATA[//><!-- if (window.external)
{
document.write(
'<span style="color:blue;cursor:hand;behavior:url(#default#homepage);"'
+ ' onclick="this.setHomePage(location.href);">'
+ 'Make this Page your Homepage...'
+ '</span>'
);
}
//--><!]]> </script>
For security reasons, setHomePage() causes Internet Explorer to activate a confirmation dialog for changing the Homepage setting.
The literature listed in this section is hand-picked. We only recommend books which we frequently use ourselves. You can use the Amazon links provided for online ordering if you are interested in purchasing any of the books. Simply chose the link to the Amazon website closest to you. Amazon.co.uk is located in the United Kingdom, Amazon.com is located in the United States, and Amazon.de is located in Germany.
Recommended reading on JavaScript (ECMAScript):
 |
JavaScript for the World Wide Web (Visual QuickStart Guide)
Language: English
Authors: Tom Negrino, Dori Smith
Publisher: Peachpit Press
Published: October 2001
ISBN: 0201735172
Paperback - 445 Pages
|
This section provides PHP resources which you will hopefully find useful. Over time, we hope to turn this section into a comprehensive reference for both beginners and experts. We are trying to provide working solutions for professional applications. The scripts and code snippets in this section are taken from real projects. Links to external websites are hand-picked and we only recommend literature which we frequently use ourselves.
Last Change
PHP test page for Browser Check:
<?php echo '<p>HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'].'</p>'; ?>
Output:
HTTP_USER_AGENT: Mozilla/5.0 (compatible; NLI_IAHarvester/3.3.0 +http://www.nli.ie/)
The gethostbyname() PHP function can be used to look up the IP address for a given domain name.
string gethostbyname(string hostname)
The gethostbyname() function expects a host or domain name string parameter without the http:// protocol part (e.g., www.bme.ie) and returns the IP address for the given hostname or the hostname itself if the lookup failed.
The gethostbyaddr() PHP function can be used to look up the host (domain) name for a given IP address.
string gethostbyaddr(string ipaddress)
The gethostbyaddr() function expects a IP address string parameter (e.g., 207.46.249.252) and returns the host or domain name for the given ipaddress or the ipaddress itself if the lookup failed.
The following PHP and HTML code displays a HTML page with a form for IP address and domain name lookups:
<?php
// dnslookupip.php - DNS/IP Address Lookup
// Copyright (c) 2003-2006 by Manfred Baumeister (www.bme.ie)
// Page title
$pagetitle = 'BME Resources - PHP Application: DNS Lookup';
// Prompts
$prompt_ip = 'IP Address';
$prompt_dn = 'Domain Name';
// Messages
$lookupfail = '<span style="color:red;">* lookup failed *</span>';
// Get submitted host/domain name
$dn = isset($_REQUEST['dn']) ? $_REQUEST['dn'] : '';
if ($dn == $prompt_dn)
{
$dn = '';
}
// Get submitted ip address
$ip = isset($_REQUEST['ip']) ? $_REQUEST['ip'] : '';
if ($ip == $prompt_ip)
{
$ip = '';
}
// Check if host/domain name specified
if ($dn)
{
// Domain name specified; IP address lookup request
if ($dn == 'me')
{
$ip = $_SERVER['REMOTE_ADDR'];
}
else
{
// Lookup IP address by domain/host name
$ip = @gethostbyname($dn);
if ($ip == $dn)
{
$ip = $lookupfail;
}
}
$message = $prompt_dn.' '.$dn.' :: '.$prompt_ip.' '.$ip;
}
// Check if IP address specified
else if ($ip)
{
// Lookup domain/host name by IP address
$dn = @gethostbyaddr($ip);
// Check lookup
if ($dn == $ip)
{
// IP address invalid or domain name not found
$dn = $lookupfail;
}
$message = $prompt_ip.' '.$ip.' :: '.$prompt_dn.' '.$dn;
}
else
{
$message = $prompt_dn.' '.$_SERVER['HTTP_HOST']
.' :: '.$prompt_ip.' '.$_SERVER['SERVER_ADDR'];
}
?>
<html>
<head>
<title><?php echo $pagetitle;?></title>
</head>
<body style="background-color:#cfcfcf;font-family:Arial;sans-serif;font-size:12px;">
<h3 style="font-size:13px;margin-bottom:0px;"><?php echo $pagetitle;?></h3>
<hr />
<p style="margin-top:4px;margin-bottom:4px;font-size:12px;">
<?php echo $message;?>
</p>
<form style="margin-top:4px;margin-bottom:4px;">
<input style="font-size:12px;" type="text" name="dn"
value="<?php echo $prompt_dn;?>" size="30" />
<input style="font-size:12px;" type="text" name="ip"
value="<?php echo $prompt_ip;?>" size="15" />
<input style="font-size:12px;" type="submit" value="Lookup" />
</form>
<hr />
<p style="margin:0px;font-size:9px;color:#666666;">
Copyright © 2003-<?php echo date('Y');?>
by <a href="http://www.bme.ie" target="_top">Manfred Baumeister</a>
</p>
</body>
</html>
The following displays the HTML page from above using an <iframe> tag:
Click here to open the above page in its own window.
Most web browsers provide a function for displaying the source code of the currently loaded web page. However, sometimes it is useful to access web page source code without having to load the web page into the web browser first. Examples might be web pages which immediately redirect to other web pages, style sheets (CSS files), JavaScripts (JS files), or web pages which could contain malicious code (you might want to check the source code first before allowing your web browser to load the web page and run or download any potentially malicious code). The file_get_contents() PHP function can be used to read an entire file into a string:
string file_get_contents(string filename)
A URL can be used as a filename parameter for the file_get_contents() function if the URL-aware fopen wrappers are enabled (PHP option/variable allow_url_fopen set to 1).
The following PHP and HTML code displays a HTML page with a form for entering the address (URL) of a file to be displayed. The form also provides a checkbox for wrapping long lines when displaying the source code. The content of the specified web address is displayed using a form/<textarea> tag. A button is provided for selecting the displayed text in JavaScript-enabled web browsers.
<?php
// viewwebpagesource.php - Display/view contents/source of URI-specified web page
// Copyright (c) 2003-2006 by Manfred Baumeister (http://www.bme.ie)
// Page title
$pagetitle = 'Baumeister Mediasoft Engineering :: Resources :: '
.'PHP Application: Display/View Web Page Contents/Source'
;
// Messages
$fmturl = '<p style="margin:0px;">"%s" contents/source:</p>'."\n";
$nosource = '<span style="color:red;">* empty / not found *</span>';
// Form parameters
$url = isset($_REQUEST['url']) ? $_REQUEST['url'] : '';
$dowrap = isset($_REQUEST['wrapsource']) && !empty($_REQUEST['wrapsource']) && ($_REQUEST['wrapsource'] == 'on') ? 1 : 0;
?>
<html>
<head>
<title><?php echo $pagetitle;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body style="background-color:#cfcfcf;font-family:Arial;sans-serif;font-size:12px;">
<h3 style="font-size:13px;margin-bottom:0px;"><?php echo $pagetitle;?></h3>
<hr />
<form method="post" style="margin-top:4px;margin-bottom:4px;">
URL <input style="font-size:12px;" type="text" size="50"
name="url" value="<?php echo empty($url) ? 'http://' : $url;?>" />
<input style="font-size:12px;" type="checkbox"
name="wrapsource"<?php if ($dowrap) { echo ' checked="checked"';}?> />Wrap
<input style="font-size:12px;" type="submit" value="Go" />
</form>
<?php
if (!empty($url))
{
// Start web page output
echo '<hr />'."\n";
// Display selected URL
echo sprintf($fmturl, $url);
// Enable URL-aware fopen wrappers to allow for URL file reading
if ((double)phpversion() >= 4.2)
{
ini_set('allow_url_fopen', '1');
}
// Read file
$s = @file_get_contents($url);
if (empty($s))
{
// Web page empty/access failure
echo $nosource;
}
else
{
// Display web page contents/source using form/textarea
?>
<form name="_webpagesource_" style="margin-bottom:0px;">
<script type="text/javascript" language="JavaScript">
<!--
// Display select all button
document.write('<input style="font-size:12px;" type="button" value="Select All"'
+ ' onclick="document.forms[\'_webpagesource_\'][\'_src_\'].select();"'
+ ' />'
);
//-->
</script>
<table width="100%" height="80%" border="0" cellspacing="0" cellpadding="0"><tr>
<td style="vertical-align:top;">
<textarea id="_src_" style="width:100%;height:100%;"
wrap="<?php echo $dowrap ? 'virtual' : 'off';?>">
<?php echo htmlspecialchars($s);?>
</textarea>
</td>
</tr></table>
</form>
<?php
}
}
?>
<hr />
<p style="margin:0px;font-size:9px;color:#666666;">
Copyright © 2003-<?php echo date('Y');?>
by <a href="http://www.bme.ie" target="_top">Manfred Baumeister</a>
</p>
</body>
</html>
The following displays the HTML page from above using an <iframe> tag:
Click here to open the above page in its own window.
PHP user function for downloading files without public URL:
<?php
function DownloadFile($filename)
{
// Check filename
if (empty($filename) || !file_exists($filename))
{
return FALSE;
}
// Create download file name to be displayed to user
$saveasname = basename($filename);
// Send binary filetype HTTP header
header('Content-Type: application/octet-stream');
// Send content-length HTTP header
header('Content-Length: '.filesize($filename));
// Send content-disposition with save file name HTTP header
header('Content-Disposition: attachment; filename="'.$saveasname.'"');
// Output file
readfile($filename);
// Done
return TRUE;
}
?>
PHP script for downloading files without public URL:
<?php
//////////////////////////////////////////////////////////////////////
// DOWNLOAD.PHP -- Download Utility
// Copyright (c) 2001-2006 Manfred Baumeister, Dublin, Ireland
//
// AUDIT TRAIL:
// mb (03/02/2004) Bugfix/Patch: Call to getGlobalVar('id', 1) fixed.
// mb (26/12/2003) Modified download file id parameter access.
// mb (26/12/2003) BUGFIX: Syntax error (missing ')' in line 13) fixed.
// mb (15/09/2003) getGlobalVar function added/facilitated.
// mb (05/10/2002) PHP 4.2 global variable access.
//////////////////////////////////////////////////////////////////////
// Get download file id (assume it's passed as a form or URL parameter)
$id = getGlobalVar('id', 1);
// Check download file id parameter, get download file name, download file
// (assuming (global) variable $id specifies download file id)
if (empty($id) || !DownloadFile(getDownloadFileName($id)))
{
die("No Download!");
}
// Only functions beyond this point
function getDownloadFilename($fileid)
// Get download file pathname
// Returns: download file pathname
// Parameters:
// $fileid : File identifier
{
// Download file list
$DLFILES = array(
'TOOL1' => 'download/tool1_v30.exe',
'PROG2' => 'download/prog2setup.exe',
);
// Get/check download file name
if (empty($fileid) || empty($DLFILES[$fileid]))
{
return '';
}
// Set base directory to document root directory
// (could also be set to a directory outside document root!)
$basedir = getGlobalVar('DOCUMENT_ROOT');
// Build and return download file name
return $basedir.'/'.$DLFILES[$fileid];
}
function DownloadFile($filename)
// Download file
// Returns: TRUE if download successfully started, FALSE if download failed
// Parameters:
// $filename : Download file pathname
{
// Verify filename
if (empty($filename) || !file_exists($filename))
{
return FALSE;
}
// Create download file name to be displayed to user
$saveasname = basename($filename);
// Send binary filetype HTTP header
header('Content-Type: application/octet-stream');
// Send content-length HTTP header
header('Content-Length: '.filesize($filename));
// Send content-disposition with save file name HTTP header
header('Content-Disposition: attachment; filename="'.$saveasname.'"');
// Output file
readfile($filename);
// Download successfully started
return TRUE;
}
function getGlobalVar($g, $formflag = 0)
// Get global PHP variable value
// Returns: global variable value or empty string if not available
// Parameters:
// $g : Global PHP variable name
// $formflag : Flag - global var from GET/POST input
{
if (empty($g))
{
return 0;
}
// Try superglobal access (PHP 4.1.0+)
if ($formflag)
{
if (isset($_POST[$g]))
{
return $_POST[$g];
}
if (isset($_GET[$g]))
{
return $_GET[$g];
}
if (isset($_REQUEST[$g]))
{
return $_REQUEST[$g];
}
}
else
{
if (isset($_SERVER[$g]))
{
return $_SERVER[$g];
}
if (isset($_ENV[$g]))
{
return $_ENV[$g];
}
}
// Try superglobal access (PHP 3.0.0+)
if (isset($GLOBALS[$g]))
{
return $GLOBALS[$g];
}
// Try global variable access (PHP 3+)
global $$g;
if (!empty($$g))
{
return $$g;
}
// Assume global variable empty/not set
return '';
}
?>
The script above expects a download file id parameter for identifying the download file. The advantage of the above method/script is that no download URL has to be exposed to the user (download files can even be stored outside the webserver document root). This allows to control and monitor access to download files (webmaster notification, download access counters/statistics, user identification requests, etc.). The following link would activate the download of prog2setup.exe if the script is saved as http://www.YourDomain.com/dl.php:
<a href="http://www.YourDomain.com/dl.php?id=PROG2">Download Program 2</a>
The download can also be started through a redirect statement from PHP with a script such as:
<?php header("Location: http://www.YourDomain.com/dl.php?id=PROG2"); exit; ?>
The above method/script is useful for automatic download monitoring and notification. It is possible to prevent the user from directly accessing the download file, thus allowing for additional procedures such as download access counting and webmaster notifications to be triggered whenever a download file is requested. It is also possible to pass download requests through forms for user identification.
Using the Content-disposition: attachment HTTP header can cause a series of problems in Internet Explorer, notably IE5.5 SP1 and IE6.01. See Related Links for more information. The following PHP file download user function uses a browser check to avoid these bugs/problems:
<?php
function DownloadFile($filename)
{
// Check filename
if (empty($filename) || !file_exists($filename))
{
return FALSE;
}
// Create download file name to be displayed to user
$saveasname = basename($filename);
// Send binary filetype HTTP header
header('Content-Type: application/octet-stream');
// Send content-length HTTP header
header('Content-Length: '.filesize($filename));
// Send content-disposition with save file name HTTP header
// (using workaround for MSIE 5.5 SP1 / MSIE 6.01 bugs/problems)
$browser = getGlobalVar('HTTP_USER_AGENT');
if (strstr('MSIE 5.5', $browser)
|| strstr('MSIE 6.01', $browser))
{
header('Content-Disposition: filename="'.$saveasname.'"');
}
else
{
header('Content-Disposition: attachment; filename="'.$saveasname.'"');
}
// Send Content-Transfer-Encoding HTTP header
// (use binary to prevent files from being encoded/messed up during transfer)
header('Content-Transfer-Encoding: binary');
// Output file
readfile($filename);
// Done
return TRUE;
}
function getGlobalVar($g, $formflag = 0)
// Get global PHP variable value
// Returns: global variable value or empty string if not available
// Parameters:
// $g : Global PHP variable name
// $formflag : Flag - global var from GET/POST input
{
if (empty($g))
{
return 0;
}
// Try superglobal access (PHP 4.1.0+)
if ($formflag)
{
if (isset($_GET[$g]))
{
return $_GET[$g];
}
if (isset($_POST[$g]))
{
return $_POST[$g];
}
if (isset($_REQUEST[$g]))
{
return $_REQUEST[$g];
}
}
else
{
if (isset($_SERVER[$g]))
{
return $_SERVER[$g];
}
if (isset($_ENV[$g]))
{
return $_ENV[$g];
}
}
// Try superglobal access (PHP 3.0.0+)
if (isset($GLOBALS[$g]))
{
return $GLOBALS[$g];
}
// Try global variable access (PHP 3+)
global $$g;
if (!empty($$g))
{
return $$g;
}
// Assume global variable empty/not set
return '';
}
?>
<?php
function DownloadFile($filename)
{
// Check filename
if (empty($filename) || !file_exists($filename))
{
return FALSE;
}
// Create download file name to be displayed to user
$saveasname = basename($filename);
// Send binary filetype HTTP header
header('Content-Type: application/octet-stream');
// Send content-length HTTP header
header('Content-Length: '.filesize($filename));
// Send content-disposition with save file name HTTP header
// (using workaround for MSIE 5.5 SP1 / MSIE 6.01 bugs/problems)
$browser = getGlobalVar('HTTP_USER_AGENT');
if (strstr('MSIE 5.5', $browser)
|| strstr('MSIE 6.01', $browser))
{
header('Content-Disposition: filename="'.$saveasname.'"');
}
else
{
header('Content-Disposition: attachment; filename="'.$saveasname.'"');
}
// Send Content-Transfer-Encoding HTTP header
// (use binary to prevent files from being encoded/messed up during transfer)
header('Content-Transfer-Encoding: binary');
// Output file
readfile($filename);
// Done
return TRUE;
}
function getGlobalVar($g, $formflag = 0)
// Get global PHP variable value
// Returns: global variable value or empty string if not available
// Parameters:
// $g : Global PHP variable name
// $formflag : Flag - global var from GET/POST input
{
if (empty($g))
{
return 0;
}
// Try superglobal access (PHP 4.1.0+)
if ($formflag)
{
if (isset($_GET[$g]))
{
return $_GET[$g];
}
if (isset($_POST[$g]))
{
return $_POST[$g];
}
if (isset($_REQUEST[$g]))
{
return $_REQUEST[$g];
}
}
else
{
if (isset($_SERVER[$g]))
{
return $_SERVER[$g];
}
if (isset($_ENV[$g]))
{
return $_ENV[$g];
}
}
// Try superglobal access (PHP 3.0.0+)
if (isset($GLOBALS[$g]))
{
return $GLOBALS[$g];
}
// Try global variable access (PHP 3+)
global $$g;
if (!empty($$g))
{
return $$g;
}
// Assume global variable empty/not set
return '';
}
?>
Web-safe color codes include the following RGB values:
0x00
0x33
0x66
0x99
0xCC
0xFF
The following PHP script generates a table for displaying the websafe colors:
<?php
// Color value definitions
$c = array('00','33','66','99','cc','ff');
// Start color table
echo '<table border="1" cellpadding="6">';
// Iterate R(ed) values
for ($i = 0; $i < 6; $i++)
{
// Iterate G(reen) values
for ($j = 0; $j < 6; $j++)
{
// Start color table row
echo '<tr>';
// Iterate B(lue) values
for ($k = 0; $k < 6; $k++)
{
// Get color value
$color = $c[$i].$c[$j].$c[$k];
// Get "inverted" color value
$colorinv = $c[5-$i].$c[5-$j].$c[5-$k];
// Display color table cell
echo '<th'
.' style="background-color:#'.$color.'; color:#'.$colorinv.';">'
.'#'.$color
.'</th>'
;
}
// End color table row
echo '</tr>';
}
}
// End color table
echo '</table>';
?>
Output/Display:
| #000000 | #000033 | #000066 | #000099 | #0000cc | #0000ff |
|---|
| #003300 | #003333 | #003366 | #003399 | #0033cc | #0033ff |
|---|
| #006600 | #006633 | #006666 | #006699 | #0066cc | #0066ff |
|---|
| #009900 | #009933 | #009966 | #009999 | #0099cc | #0099ff |
|---|
| #00cc00 | #00cc33 | #00cc66 | #00cc99 | #00cccc | #00ccff |
|---|
| #00ff00 | #00ff33 | #00ff66 | #00ff99 | #00ffcc | #00ffff |
|---|
| #330000 | #330033 | #330066 | #330099 | #3300cc | #3300ff |
|---|
| #333300 | #333333 | #333366 | #333399 | #3333cc | #3333ff |
|---|
| #336600 | #336633 | #336666 | #336699 | #3366cc | #3366ff |
|---|
| #339900 | #339933 | #339966 | #339999 | #3399cc | #3399ff |
|---|
| #33cc00 | #33cc33 | #33cc66 | #33cc99 | #33cccc | #33ccff |
|---|
| #33ff00 | #33ff33 | #33ff66 | #33ff99 | #33ffcc | #33ffff |
|---|
| #660000 | #660033 | #660066 | #660099 | #6600cc | #6600ff |
|---|
| #663300 | #663333 | #663366 | #663399 | #6633cc | #6633ff |
|---|
| #666600 | #666633 | #666666 | #666699 | #6666cc | #6666ff |
|---|
| #669900 | #669933 | #669966 | #669999 | #6699cc | #6699ff |
|---|
| #66cc00 | #66cc33 | #66cc66 | #66cc99 | #66cccc | #66ccff |
|---|
| #66ff00 | #66ff33 | #66ff66 | #66ff99 | #66ffcc | #66ffff |
|---|
| #990000 | #990033 | #990066 | #990099 | #9900cc | #9900ff |
|---|
| #993300 | #993333 | #993366 | #993399 | #9933cc | #9933ff |
|---|
| #996600 | #996633 | #996666 | #996699 | #9966cc | #9966ff |
|---|
| #999900 | #999933 | #999966 | #999999 | #9999cc | #9999ff |
|---|
| #99cc00 | #99cc33 | #99cc66 | #99cc99 | #99cccc | #99ccff |
|---|
| #99ff00 | #99ff33 | #99ff66 | #99ff99 | #99ffcc | #99ffff |
|---|
| #cc0000 | #cc0033 | #cc0066 | #cc0099 | #cc00cc | #cc00ff |
|---|
| #cc3300 | #cc3333 | #cc3366 | #cc3399 | #cc33cc | #cc33ff |
|---|
| #cc6600 | #cc6633 | #cc6666 | #cc6699 | #cc66cc | #cc66ff |
|---|
| #cc9900 | #cc9933 | #cc9966 | #cc9999 | #cc99cc | #cc99ff |
|---|
| #cccc00 | #cccc33 | #cccc66 | #cccc99 | #cccccc | #ccccff |
|---|
| #ccff00 | #ccff33 | #ccff66 | #ccff99 | #ccffcc | #ccffff |
|---|
| #ff0000 | #ff0033 | #ff0066 | #ff0099 | #ff00cc | #ff00ff |
|---|
| #ff3300 | #ff3333 | #ff3366 | #ff3399 | #ff33cc | #ff33ff |
|---|
| #ff6600 | #ff6633 | #ff6666 | #ff6699 | #ff66cc | #ff66ff |
|---|
| #ff9900 | #ff9933 | #ff9966 | #ff9999 | #ff99cc | #ff99ff |
|---|
| #ffcc00 | #ffcc33 | #ffcc66 | #ffcc99 | #ffcccc | #ffccff |
|---|
| #ffff00 | #ffff33 | #ffff66 | #ffff99 | #ffffcc | #ffffff |
|---|
phpinfo() creates a web page with comprehensive system environment information such as operating system and web server environment, PHP configuration, paths, global and local values of configuration options, HTTP headers, etc. Because every system is setup differently, phpinfo() is often used to check configuration settings and predefined system variables. phpinfo() is also a valuable debugging tool as it lists GET, POST, cookie, environment and server data.
It doesn't come as a surprise that the following script is often the first PHP script a PHP developer runs on a new client system:
<?php phpinfo(); ?>
The above script is usually saved under a file name such as phpinfo.php. Since phpinfo() exposes information which might help hackers to break into a system, it is not recommended to provide easy and/or permanent public access to phpinfo() scripts.
The phpversion() retrieves the current PHP version:
<?php echo '<p>PHP Version: '.phpversion().'</p>'; ?>
Output:
PHP Version: 5.6.31
The string returned by phpversion() can easily be converted to a numeric value:
<?php echo '<p>PHP Version: '.phpversion().' = '.(float)phpversion().'</p>'; ?>
Output:
PHP Version: 5.6.31 = 5.6
phpversion() can be used to control the execution of PHP functions with different implementations depending on the PHP version. The following code shows a version-independent application of the microtime() PHP function for retrieving the Unix timestamp with microseconds accuracy:
<?php
function getMicrotime()
{
// Get Unix timestamp with microseconds accuracy
if ((float)phpversion() >= 5.0)
{
return microtime(1);
}
list($usec, $sec) = explode(' ', microtime());
return ((float)$sec + (float)$usec);
}
?>
The literature listed in this section is hand-picked. We only recommend books which we frequently use ourselves. You can use the Amazon links provided for online ordering if you are interested in purchasing any of the books. Simply chose the link to the Amazon website closest to you. Amazon.co.uk is located in the United Kingdom, Amazon.com is located in the United States, and Amazon.de is located in Germany.
Recommended reading on PHP:
 |
PHP Advanced for the World Wide Web: Visual Quickpro Guide (Visual QuickPro Guide)
Language: English
Author: Larry Ullman
Publisher: Peachpit Press
Published: January 2002
ISBN: 0201775972
Paperback - 511 Pages
|
This section provides information and resources about web graphics which we hope you will find useful. The main issue is obviously the creation of web pages with graphical content and/or graphical effects and design elements. This requires basic knowledge about graphic formats and information about how to create and optimize graphic files for the web and leads on to many of the more general aspects of graphic design. We are trying to provide information and material which can be used for real projects. Links to external websites are hand-picked and we only recommend literature which we frequently use ourselves. Over time, we hope to turn this section into a comprehensive reference for both beginners and experts.
Last Change
Web Graphics Resources
Web-safe color codes include the following RGB values:
0x00
0x33
0x66
0x99
0xCC
0xFF
To view the following color tables, your browser has to support background colors in table cells.
Sort Order R-G-B
Sort Order R-G-B
#00**** 0,*,* |
#00**00 0,*,0 |
#00**33 0,*,51 |
#00**66 0,*,102 |
#00**99 0,*,153 |
#00**CC 0,*,204 |
#00**FF 0,*,255 |
0000** 0,0,* |
#000000 |
#000033 |
#000066 |
#000099 |
#0000CC |
#0000FF |
0033** 0,51,* |
#003300 |
#003333 |
#003366 |
#003399 |
#0033CC |
#0033FF |
0066** 0,102,* |
#006600 |
#006633 |
#006666 |
#006699 |
#0066CC |
#0066FF |
0099** 0,153,* |
#009900 |
#009933 |
#009966 |
#009999 |
#0099CC |
#0099FF |
00CC** 0,204,* |
#00CC00 |
#00CC33 |
#00CC66 |
#00CC99 |
#00CCCC |
#00CCFF |
00FF** 0,255,* |
#00FF00 |
#00FF33 |
#00FF66 |
#00FF99 |
#00FFCC |
#00FFFF |
#33**** 51,*,* |
#33**00 51,*,0 |
#33**33 51,*,51 |
#33**66 51,*,102 |
#33**99 51,*,153 |
#33**CC 51,*,204 |
#33**FF 51,*,255 |
3300** 51,0,* |
#330000 |
#330033 |
#330066 |
#330099 |
#3300CC |
#3300FF |
3333** 51,51,* |
#333300 |
#333333 |
#333366 |
#333399 |
#3333CC |
#3333FF |
3366** 51,102,* |
#336600 |
#336633 |
#336666 |
#336699 |
#3366CC |
#3366FF |
3399** 51,153,* |
#339900 |
#339933 |
#339966 |
#339999 |
#3399CC |
#3399FF |
33CC** 51,204,* |
#33CC00 |
#33CC33 |
#33CC66 |
#33CC99 |
#33CCCC |
#33CCFF |
33FF** 51,255,* |
#33FF00 |
#33FF33 |
#33FF66 |
#33FF99 |
#33FFCC |
#33FFFF |
#66**** 102,*,* |
#66**00 102,*,0 |
#66**33 102,*,51 |
#66**66 102,*,102 |
#66**99 102,*,153 |
#66**CC 102,*,204 |
#66**FF 102,*,255 |
6600** 102,0,* |
#660000 |
#660033 |
#660066 |
#660099 |
#6600CC |
#6600FF |
6633** 102,51,* |
#663300 |
#663333 |
#663366 |
#663399 |
#6633CC |
#6633FF |
6666** 102,102,* |
#666600 |
#666633 |
#666666 |
#666699 |
#6666CC |
#6666FF |
6699** 102,153,* |
#669900 |
#669933 |
#669966 |
#669999 |
#6699CC |
#6699FF |
66CC** 102,204,* |
#66CC00 |
#66CC33 |
#66CC66 |
#66CC99 |
#66CCCC |
#66CCFF |
66FF** 102,255,* |
#66FF00 |
#66FF33 |
#66FF66 |
#66FF99 |
#66FFCC |
#66FFFF |
#99**** 153,*,* |
#99**00 153,*,0 |
#99**33 153,*,51 |
#99**66 153,*,102 |
#99**99 153,*,153 |
#99**CC 153,*,204 |
#99**FF 153,*,255 |
9900** 153,0,* |
#990000 |
#990033 |
#990066 |
#990099 |
#9900CC |
#9900FF |
9933** 153,51,* |
#993300 |
#993333 |
#993366 |
#993399 |
#9933CC |
#9933FF |
9966** 153,102,* |
#996600 |
#996633 |
#996666 |
#996699 |
#9966CC |
#9966FF |
9999** 153,153,* |
#999900 |
#999933 |
#999966 |
#999999 |
#9999CC |
#9999FF |
99CC** 153,204,* |
#99CC00 |
#99CC33 |
#99CC66 |
#99CC99 |
#99CCCC |
#99CCFF |
99FF** 153,255,* |
#99FF00 |
#99FF33 |
#99FF66 |
#99FF99 |
#99FFCC |
#99FFFF |
#CC**** 204,*,* |
#CC**00 204,*,0 |
#CC**33 204,*,51 |
#CC**66 204,*,102 |
#CC**99 204,*,153 |
#CC**CC 204,*,204 |
#CC**FF 204,*,255 |
CC00** 204,0,* |
#CC0000 |
#CC0033 |
#CC0066 |
#CC0099 |
#CC00CC |
#CC00FF |
CC33** 204,51,* |
#CC3300 |
#CC3333 |
#CC3366 |
#CC3399 |
#CC33CC |
#CC33FF |
CC66** 204,102,* |
#CC6600 |
#CC6633 |
#CC6666 |
#CC6699 |
#CC66CC |
#CC66FF |
CC99** 204,153,* |
#CC9900 |
#CC9933 |
#CC9966 |
#CC9999 |
#CC99CC |
#CC99FF |
CCCC** 204,204,* |
#CCCC00 |
#CCCC33 |
#CCCC66 |
#CCCC99 |
#CCCCCC |
#CCCCFF |
CCFF** 204,255,* |
#CCFF00 |
#CCFF33 |
#CCFF66 |
#CCFF99 |
#CCFFCC |
#CCFFFF |
#FF**** 255,*,* |
#FF**00 255,*,0 |
#FF**33 255,*,51 |
#FF**66 255,*,102 |
#FF**99 255,*,153 |
#FF**CC 255,*,204 |
#FF**FF 255,*,255 |
FF00** 255,0,* |
#FF0000 |
#FF0033 |
#FF0066 |
#FF0099 |
#FF00CC |
#FF00FF |
FF33** 255,51,* |
#FF3300 |
#FF3333 |
#FF3366 |
#FF3399 |
#FF33CC |
#FF33FF |
FF66** 255,102,* |
#FF6600 |
#FF6633 |
#FF6666 |
#FF6699 |
#FF66CC |
#FF66FF |
FF99** 255,153,* |
#FF9900 |
#FF9933 |
#FF9966 |
#FF9999 |
#FF99CC |
#FF99FF |
FFCC** 255,204,* |
#FFCC00 |
#FFCC33 |
#FFCC66 |
#FFCC99 |
#FFCCCC |
#FFCCFF |
FFFF** 255,255,* |
#FFFF00 |
#FFFF33 |
#FFFF66 |
#FFFF99 |
#FFFFCC |
#FFFFFF |
This section provides information about the Mobile Web and about Mobile Website and Mobile Apps development.
Mobile Website Development
Mobile Apps Development
Android Development
iPhone/iPad Development
Blackberry / RIM Development
Palm and WebOS Development
SymbianOS Development
Windows Phone 7 Development
Mobile Apps
This section provides Web Analytics information and resources which you will hopefully find useful. Over time, we hope to turn this section into a comprehensive reference for both beginners and experts. We are trying to provide working solutions for professional applications. The scripts and code snippets in this section are taken from real projects. Links to external websites are hand-picked and we only recommend literature which we frequently use ourselves.
Recommended reading on Web Analytics:
 |
Web Analytics 2.0: The Art of Online Accountability and Science of Customer Centricity
Language: English
Author: Avinash Kaushik
Publisher: John Wiley & Sons Inc
Published: October 2009
ISBN: 0470529393
Paperback - 504 Pages
|
Certain legal aspects have to be considered when operating an E-Commerce website in the internal market and/or under the jurisdiction of the European Community.
NOTE: The information on this page is provided "as-is". We cannot guarantee the validity of this information.
Certain directives have to be considered when operating an E-Commerce website in the internal market and/or under the jurisdiction of the European Community.
The following table shows the standard VAT rates in countries of the European Community.
| EC Country | Standard Value Added Tax Rate |
| Updated: January 2nd, 2016 |
| Austria | 20 % |
| Belgium | 21 % |
| Bulgaria | 20 % |
| Croatia | 25 % |
| Cyprus | 19 % |
| Czech Republic | 21 % |
| Denmark | 25 % |
| Estonia | 20 % |
| Finland | 24 % |
| France | 20 % |
| Germany | 19 % |
| Greece | 23 % |
| Hungary | 27 % |
| Ireland | 23 % |
| Italy | 22 % |
| Latvia | 21 % |
| Lithuania | 21 % |
| Luxembourg | 17 % |
| Malta | 18 % |
| Netherlands | 21 % |
| Poland | 23 % |
| Portugal | 23 % |
| Romania | 24 % |
| Slovakia | 20 % |
| Slovenia | 22 % |
| Spain | 21 % |
| Sweden | 25 % |
| United Kingdom | 20 % |
see below for links to PSPs (Payment Service Providers)...
Accept credit card payments through PayPal
Click here to sign up for PayPal and start accepting credit card payments instantly.

This section provides a listing of tools and utilities for web developers which we find rather useful.
Microsoft Internet Explorer Developer Toolbar
The Internet Explorer Developer Toolbar provides a series of useful functions for a rather comprehensive technical analysis of the web page content currently loaded in Internet Explorer. Download
Web Development • © 2017 Manfred Baumeister • Updated: 02 October 2010, 23:36 [UTC]
|