almostbob 866 Retired: passive income ROCKS

.htaccess has been around since darpanet, and terminal servers, and is a part of the server OS, not a part of the php application
php is somewhat newer

the op is just showing their age :)
( F*** mod_perl :icon_razz: )

best to post the code, its easier for someone to view it an say,"there" than for each of us to create from scratch something that may not work with the other code

almostbob 866 Retired: passive income ROCKS

php forms
self posting, the user sees very little not even a filename, everything is on the server

<?php // form processing verification
if isset($_post['bla bla bla']) { /*mysql bla bla bla etc */ }
?>
<html><head></head><body><form method='post' name='form1'>

the default action for a form is to post to itself

almostbob 866 Retired: passive income ROCKS

Thats been a problem with many apps free to sell, but it doesnt actually work.
The person who sold it to you knows it doesnt work,
quite often they found the problem insurmountable and just gave up
then sell off their partially developed code, or they bought it with onsell rights and found . . . (if it worked who would sell a facebook app, that could conveivably be a goldmine, there is only 1 facebook, one place to sell apps, one chance at it)

an editor with code highlighting will point out hidden structural errors in the code, and may even help with logical errors
pretty much everyone else is as darkagn wrote willing to help with specific problems
many a **expletive** system has fallen over and died, because there is a missing character
though the code was syntactically correct without it,
code does something other than what was intended without that extra =%'$\

almostbob 866 Retired: passive income ROCKS

dont use javascript,
try php to randomize the images as well, there is no user input, there need be nothing clientside

array() and rand() in php

has the bonus there is less to download, cant be blocked if javascript is disabled

almostbob 866 Retired: passive income ROCKS
$sql=mysql_query("Select * from students where voted=1 group by department order by course");
$sql=mysql_query("Select * from students where voted=1 group by course order by department");
$sql=mysql_query("Select * from students where voted=1 course=%s group by department order by name", $session['course']);

combinations of group by order by produce widely different and often interesting results
the last one, is unchecked, I always messup replaceable parameters in mysql please check the format at a reputable instruction site
%s is replaced by the content of $session

almostbob 866 Retired: passive income ROCKS

what site

almostbob 866 Retired: passive income ROCKS

A tall glass of V8 juice heavily peppered.

a tall glass of pepper lightly juiced?

Habitant pea & ham soup in a mug, the only thing I knew about Canada before I got here, was swapping beer and steak burgers for ration soup with Canadian Inf

Aus rations include beer, steaks - accidental buffalo incident
the soup is good enough to give beer for

almostbob 866 Retired: passive income ROCKS

I dont post the url including a user name
store the logged in details in the session
& use $session in declarations, so there is one less opening
and the session varaible is always available

almostbob 866 Retired: passive income ROCKS

you start, we steer - once you begin
There are announcements above all the forums about homework
just how PO everybody who will answer is about homework
show a code example, and many will help straight off, otherwise you just get answers like this

almostbob 866 Retired: passive income ROCKS

Is the $_Server array i mentioned earlier is complete ? :)

dunno, I use the same four for most of the detections I need,
I look at php.net helpscreens whenever I want something other than http_accept http_user_agent php_self http_referer and usually forget it as soon as the code works
headslap moment

almostbob 866 Retired: passive income ROCKS

those are user_agents :P
it is reasonable to assume that a portable device that reports that user_agent has the minimum standards of the browser
windows ce has good javascript, pretty much full xhtml support, full mouse support (touch screen +tap)
blackberry works ok, with typically lousy javascript
a device running opera mini, can display everything,
I use the opera mini demo to preview webpages http://demo.opera-mini.net/demo.html?www.yoursite.com handheld
It is impossible to really get hardware details
all can be spoofed
its most functional (i think) to display what the user_agent says it can display, from http_accept user_agent etc off the $_server array

the m. subdomain has minimized images & code most handheld users pay per byte, and have low d/l speed.

ramble
ramble

almostbob 866 Retired: passive income ROCKS

sorry theyre in order of ability, down to opera mini are nominally pda, below nim,inally phones
some pda like early blckberry are less competent than newer phones, but ...

almostbob 866 Retired: passive income ROCKS

assuming the need for a browser sniffer for handheld devices this gets most

<?php $mobile = "http://m.mysite.com/";
if(preg_match('/Windows CE/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/Blackberry/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/PalmOS/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/PalmSource/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/SymbianOS/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/Opera Mini/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/Nokia/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/Samsung/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/vodaphone/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/Jphone/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/AvantGo/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/DoCoMo/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
elseif(preg_match('/DDIPOCKET/i',$_SERVER['HTTP_USER_AGENT'])) { header("location: $mobile");}
// redirect to pda page else continue
ob_start("ob_gzhandler"); ?>
darkagn commented: Excellent post +3
almostbob 866 Retired: passive income ROCKS
almostbob 866 Retired: passive income ROCKS

I find that my filesystem likes filespecs to start with a full or relative path

<?php
$i=1;
$a='am.txt';
$p='pm.txt';
$dir1 = './generic/'; // asumption on my part subfolder of current
$dir2 = './playlists/'; //ditto
while($i<=12) {
echo " copying $i\n"; //feedback dont know how large the files are, how much time for copy, if vanishingly small, remove
if (!copy($dir1.$i.$a, $dir2.$i.$a)) { echo "failed to copy $i$a\n"; }
if (!copy($dir1.$i.$p, $dir2.$i.$p)) { echo "failed to copy $i$p\n"; }
$i++; } ?>

it makes no difference the order the files are copied in, the filesytem allocates as it sees fit, as long as the names are the expected names, they will appear in the right order in the code that (eventually) creates the final playlist, (LAZY)

almostbob 866 Retired: passive income ROCKS

I answered your question, if you didnt want to know the 'generic 'answer, sorry, but thats the question asked

what mouseover effect do you want to achieve

the code to the site is better, between code tags, lets those who can implement what you want, point to where it goes

likely when it gets interesting there will be many more than just me playing sillybuggers with the code

almostbob 866 Retired: passive income ROCKS

yes
________
Less smartass reply
yes, but
_________
Less smartass reply
yes, but only appearance, functions require some scripting, usually javascript
_________
reasonable reply

Yes, but only appearance, functions require some scripting language
example

<! doctype bla bla bla>
<html>
<head>
<style type='text/css'>
a { background:red; color:white; }
a:hover { background:white; color:red; }
</style>
</head>
<body>
<a href='#'>this is an ugly link</a>
</body>
</html>

available pseudo classes depending on which element being styled are

{blank}
link
hover
active
focus
first-line
first-letter
first-child
lang
visited
detailed explanations at http://www.w3schools.com/CSS/css_pseudo_classes.asp if($w3schools) { echo 'cool'; }

almostbob 866 Retired: passive income ROCKS

php image 'randomizer'(almost)

<?php $p = split('/', $_SERVER['SCRIPT_FILENAME']);
$today = getdate();
$script_name = $p[count($p)-1];
$path = './pathtoimages/'; // oops have to set this
$dir_handle = @opendir($path) or die("Unable to open $path");
Function get_Extension($m_FileName){
$path_parts = pathinfo($m_FileName);
if ($path_parts["extension"]) {
$m_Extension = strtolower($path_parts["extension"]);
return(strtoupper($m_Extension));
}
else { return "unknown"; }
}
function check_image($filename){
$temp=strtoupper(get_Extension($filename));
 if(($temp=="JPG")||($temp=="JPEG")||($temp=="GIF"))
return (true);
else
return (false);
}
Function get_Files($path) {
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if(!is_dir($file) && substr($file,O,1) != "."){
$m_Files[]=$file;
}
}
closedir($handle);
}
if(sizeof($m_Files)>1)
asort($m_Files);
return $m_Files;
}
$files=get_Files($path);
$filter_files=array_filter($files,"check_image");
$maxnr=sizeof($filter_files)-1;
sort($filter_files);
$choose = $today[0] % count($filter_files);
echo '<img src="'.$path.$filter_files[$choose].'" alt="'.$path.$filter_files[$choose].'">';
closedir($dir_handle); } ?>

just drop it inplace instead of the existing img tag
user sees <img src=filename alt=filaname>

almostbob 866 Retired: passive income ROCKS

the code is not complete all the elements referred to are not shown
for a div, that code should work
if total is an <input> the correct form would be document.getElementById('total').value = a; code samples should include all the elements referred to, otherwise its just a guess, if this scrap doesnt help repost the full code

almostbob 866 Retired: passive income ROCKS

I graduated high school,
back when you caught the 7:30 dinosaur

almostbob 866 Retired: passive income ROCKS

Hello almostbob,

Thanks again for the code. Gonna really help with the bingo at school tomorrow.

I hope you don't mind if I ask one more question...ignore me if you wish.

Since I have 90 numbers in the bingo game (I have added the extras into your code), it takes up a lot of room on the page when a number is clicked on. This will mean constant scrolling up and down to click on new numbers.

Instead of the number appearing at the top of the screen, is there any way to make it appear over the top of the main screen for maybe 5 seconds? Not actually open a new page that needs to be closed, but just a temp thing that appears. I have seen on some web sites when you click on a picture, the screen goes dark (kind of like a see-through dark) and the picture is displayed in the centre of the screen. Something like that?

Thanks
Peter

If you style the div.pick element ....
and tweak the javascript a little...

<!-- from here -->
<style type="text/css">
table {width:100%; height:100%;}
tr {font-size:2em; line-height:125%;}
td {width:6.25%; text-align:center;}
td.yellow {background:yellow;}
td.title {font-size:1.2em; font-weight:bold;}
div.pick {width:100%; height:800px; font-size:15em; font-weight:bold; text-align:center; top:0; left:0; z-index:100; position:fixed; background:#000; color:#fff; display:none;}
</style>
<script type='text/javascript'>
function pick(thing) {
document.getElementById('pick').innerHTML = thing;
document.getElementById('pick').style.display='inline';
document.getElementById(thing).className = "yellow";
setTimeout('document.getElementById("pick").style.display="none";',5000);
}
</script>
<!-- to here-->

I chose black eeeww

almostbob 866 Retired: passive income ROCKS

back from picking up ladylove,
yep, same is same same same

:( kids told me bingo is 1 -> 75, have never examined bingo before
have played bingo, just never thought about it
IDE off sourceforge, allows fill in the blank pasting Ctrl_G 1, Ctrl_G 2, Ctrl_G 75 duplicates the code lines replaces %bd%
there could be significantly better code than tables and id,
could store results of called numbers in a flat file onclick the clear button, in case there were queries later, by polling the td for class='yellow'

only takes minutes, to write,
if you dont know exactly what it is, and look at it as a layout problem
**edit** make it pretty
the css is there in the header you can style

div.pick
td.yellow
td
tr
body
table

any which way you like match the colors of the images

almostbob 866 Retired: passive income ROCKS

I didnt have images, so this is just html/javascript/css
refresh the page will reset, I got lazy

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- @(#) $Id$ -->
<head>
<title>bingo Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Generator" content="almostbob" />
<meta name="Keywords" content="Bingo" />
<meta name="Description" content="Bingo" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<style type="text/css">
table {width:100%; height:100%;}
tr {font-size:2em; line-height:120%;}
td {width:6.25%; text-align:center;}
td.yellow {background:yellow;}
td.title {font-size:1.2em; font:bold;}
div.pick {width:100%; font-size:9em; text-align:center; top:0; left:0;}
</style>
</head>
<script type='text/javascript'>
function pick(thing) {
document.getElementById('pick').innerHTML = thing;
document.getElementById(thing).className = "yellow";
}
</script>
<body>
<div id='pick' class='pick'>&nbsp;</div>
<table >
<tr>
<td class='title'>B</td>
<td onclick='pick("1");' id='1'>1</td>
<td onclick='pick("2");' id='2'>2</td>
<td onclick='pick("3");' id='3'>3</td>
<td onclick='pick("4");' id='4'>4</td>
<td onclick='pick("5");' id='5'>5</td>
<td onclick='pick("6");' id='6'>6</td>
<td onclick='pick("7");' id='7'>7</td>
<td onclick='pick("8");' id='8'>8</td>
<td onclick='pick("9");' id='9'>9</td>
<td onclick='pick("10");' id='10'>10</td>
<td onclick='pick("11");' id='11'>11</td>
<td onclick='pick("12");' id='12'>12</td>
<td onclick='pick("13");' id='13'>13</td>
<td onclick='pick("14");' id='14'>14</td>
<td onclick='pick("15");' id='15'>15</td>
</tr>
<tr>
<td class='title'>I</td>
<td onclick='pick("16");' id='16'>16</td>
<td onclick='pick("17");' id='17'>17</td>
<td onclick='pick("18");' id='18'>18</td>
<td onclick='pick("19");' id='19'>19</td>
<td onclick='pick("20");' id='20'>20</td>
<td onclick='pick("21");' id='21'>21</td>
<td onclick='pick("22");' id='22'>22</td>
<td onclick='pick("23");' id='23'>23</td>
<td onclick='pick("24");' id='24'>24</td>
<td onclick='pick("25");' id='25'>25</td>
<td onclick='pick("26");' id='26'>26</td>
<td onclick='pick("27");' id='27'>27</td>
<td onclick='pick("28");' id='28'>28</td>
<td onclick='pick("29");' id='29'>29</td>
<td onclick='pick("30");' id='30'>30</td>
</tr>
<tr>
<td class='title'>N</td>
<td onclick='pick("31");' id='31'>31</td>
<td onclick='pick("32");' id='32'>32</td>
<td onclick='pick("33");' id='33'>33</td>
<td onclick='pick("34");' id='34'>34</td>
<td onclick='pick("35");' id='35'>35</td>
<td onclick='pick("36");' id='36'>36</td>
<td onclick='pick("37");' id='37'>37</td>
<td onclick='pick("38");' id='38'>38</td>
<td onclick='pick("39");' id='39'>39</td>
<td onclick='pick("40");' id='40'>40</td>
<td onclick='pick("41");' id='41'>41</td>
<td onclick='pick("42");' …
thejester1975 commented: Awesome helper. Very quick response. Thanks +0
almostbob 866 Retired: passive income ROCKS

Bingo

pdf is a proprietary format,
and there is a known problem with firefox, there is a solution,
http://support.mozilla.com/en-US/kb/Opening+PDF+files+within+Firefox
you can put the target back

>87% of potential users(those not using firefox + those who have patched firefox) will see the pdf as intended

**edit** If i were alert, that would have been the first question
IE bugs make news
FF bugs make fixes

almostbob 866 Retired: passive income ROCKS

remove the target attribute and see if the pdf opens properly in the same page
seems dumb but pdf is a proprietary format and not all implementations in browsers work always

is this an html or xhtml page, if xhtml the image tag isnt closed

almostbob 866 Retired: passive income ROCKS

do actually still wonder why nobody will assist you

read your posts, as one of those who could, if so inclined, assist you reads.
be better off getting a new login and beginning again

almostbob 866 Retired: passive income ROCKS

thats why the first line is
"show the link code"

almostbob 866 Retired: passive income ROCKS
<html>
<head>
<style type='text/css'>
div {background:#ddd; color:black; margin 0 auto; width;85%]}
</style>
</head>
<body>
<?php echo '<div>'.file_get_contents('textfile1.txt').'</div>';
echo '<div>'.file_get_contents('textfile2.txt').'</div>';
echo '<div>'.file_get_contents('textfile3.txt').'</div>';
echo '<div>'.file_get_contents('textfile4.txt').'</div>';
echo '<div>'.file_get_contents('textfile5.txt').'</div>'; ?>
</body></html>
almostbob 866 Retired: passive income ROCKS

show the link code

You dont launch their reader,
they either have the reader set up to handle urls to pdf files or they will get the download prompt

almostbob 866 Retired: passive income ROCKS

its likely code left over from whatever IDE or CMS the original author was using, Its possible that the software searches for unreasonable words like that as its anchors, and replaces them with proper text when publishing
one of the editors adds bb_ to the front of keywords it has altered, its messed up and I don't use it

almostbob 866 Retired: passive income ROCKS

remove all the defined height:s
when the page is resized text may wrap on second lines and disappear behind div boundaries
a liquid layout sets only width and allows the height to be set by the browser
if two elements of diferent sizes are required to occupy the same vertical space, you enclose them in another element as a wrapper

wrapper dimensioned 100%, is wrong, some browsers restrict that to of screen height, others to 100% of logical document height **edit I dont know how to do it 'right' how to make it the same size in different browsers **

www.w3schools.com css tutorials

as craigdo wrote, users do not scroll sideways, they leave
mice have scroll wheels that move vertically

almostbob 866 Retired: passive income ROCKS

For the oldies & all the other browsers you havent access to try http://www.browsershots.org
it has been down twice in three days, sorry if it is down when you look

almostbob 866 Retired: passive income ROCKS

cat
map
spore

fluorine

almostbob 866 Retired: passive income ROCKS

css styling

#frame1 {top:150px; left:150px; height:100px; width:100px;}
#frame2 {top:100px; left:100px; height:200px; width:200px; z-index:10; visibility:hidden; }
<button onclick='document.getElementbyID("frame2").visibility="show";'} />

ignoring the *** positioning, better to set it relative so the document flows, and adjusts to screen changes,
hidden and show may not be the right words, w3schools.com for proper format
please consider this as a guide only

dont be so hasty, its a free volunteer forum,
people will read the post eventually << attempted humor :D

almostbob 866 Retired: passive income ROCKS

another reason to avoid flash

almostbob 866 Retired: passive income ROCKS

the date of the original post is 2005
and no-body has heard of % or em, in this conversation at that point in time
it is unncessary to know the size of the window to write scaleable code

W3C recommendations for browser/screen/window independent code??

tables are inefficient outdated for most purposes??

css positioning??

current best practice can be picked up at http://www.w3schools.com

almostbob 866 Retired: passive income ROCKS

ran a page consisting of <?php phpinfo(); ?> and got error messages, ran it again and got "This page is Valid XHTML" ran it 3rd time and got error messages
suggest the w3c validator http://validator.w3.org/ which gives location of errors at least

almostbob 866 Retired: passive income ROCKS

flash is a graphic
google translator translates text

almostbob 866 Retired: passive income ROCKS

top of the forum page dude

Announcement: Do not post support questions here!
cscgal (The Queen of DaniWeb)

http://www.daniweb.com/forums/forum92.html

almostbob 866 Retired: passive income ROCKS

sorry for disturb..
now working fine in all browsers. but each page taking minimum 50sec. to load. there is any options to avoid this problem?

on the fly translation will take time, and other people's server space, so there isn really a way to speed it up

almostbob 866 Retired: passive income ROCKS

its so current
the text is so up to date

Last Mod April 10, 2006
the basic premise is right tho

almostbob 866 Retired: passive income ROCKS

dont use a flash intro, it will just PO everybody
but,
I use an animated .gif of a clock
just to give feedback that something is happening
still it ads 24KB to the pages size

almostbob 866 Retired: passive income ROCKS

getting the words out is harder than doing it

http://flashexplained.com/actionscript/controlling-the-timeline-with-actionscript/

and its FUN

almostbob 866 Retired: passive income ROCKS

This is the purpose of AJAX
cross browser compatible
no popup window issues
automatically loads in the current page

I am not good with AJAX, but I got my page loading and updating with these code samples http://daniel.lorch.cc/docs/ajax_simple/

almostbob 866 Retired: passive income ROCKS

whatever you do the url is readable, or it does not work
please define what you mean by encryption

if for a $_get, try $_post
try a session instead of sending url variables
send url variables as 1 2 3 and have the translation done serverside so the user does not know what they represent
if you just dont want the user to know the site filenames, mod_rewrite

none of those may apply, depending on what kind of url encryption you require

here is a long discussion with some code samples http://aspnet.4guysfromrolla.com/articles/083105-1.aspx

almostbob 866 Retired: passive income ROCKS

the layer can include any code you want, its just a html element, div p span table, the chat window, anything can be a layer

as I understand it thats what ajax does
ajax is returning php to a part of the current window
I'm not confident with ajax code
but at worst you could the chat in an iframe in the layer (tacky)
and put the close button in the chat page as onclick='top.hideIt();' its certain that a popup window is not going to work, malware concerns mean nobody will disable their popup blocker

you could probably copy the ajax chat code into the <div></div>

almostbob 866 Retired: passive income ROCKS

dont use a popup,
you are already using ajax functions, so use ajax to put the form in a layer, and onclick change the z-index and visibility of the layer to put it on top of everything else, so the user has to complete the form and submit/close the layer to continue
the same functionality as the private message prompts on this forum
this is a scrap of

<button id="frorm" align="center" onClick="showIt();">Important Information</button><script type="text/javascript">
<!--
(document.getElementById) ? dom = true : dom = false;
function hideIt() {
if (dom) {document.getElementById("layerm1").style.visibility='hidden';}
if (document.layers) {document.layers["layerm1"].visibility='hide';} }
function showIt() {
if (dom) {document.getElementById("layerm1").style.visibility='visible';}
if (document.layers) {document.layers["layerm1"].visibility='show';} }
--></script><div id="layerm1" style="position:fixed; left:10px; top:30px; width:95%; visibility:hidden; padding:10px; margin:10px; background:#ececec; border: 1px solid black;">
AJAX FORM
<button id="form" onClick="hideIt();">Close</button></div>

that demonstrates the principle, but not the ajax needed to replace that TEXT with your form

almostbob 866 Retired: passive income ROCKS

dammit &uparr; should be &uarr;, headslap moment

my stylesheets and scripts are .php to enable mod_deflate and mod_gzip.compression, because scripts are entirely too large
style.css is normal acceptible,

@media print styling changes the footer on printed pages so that it prints once on the end of the printout, regardless of howmany pages, and does not print the 'goto top' link
and the goto top link, is one screen pixel from the bottom right corner, here a pixel is an appropriate measure

I just didnt read what I Ctrl-v in the post

almostbob 866 Retired: passive income ROCKS

you can do either
you can set the offset of any element from window border, position:fixed;
from the logical edge of the html, position:absolute;
or from the current calculated position of prior elements, position:relative;
realtive position of 0 is the same as not specifying any location at all, the rendering engine just dumps each element in the position it occupies in the html

so if your site is based around an 800 central column on 1024*762 monitor that works

body {margin-left:10%; margin-right:10%; background:yellow url('almostbobwashere.gif') repeat; font:arial,roman 1em; color:#000; }
.firstdiv {left:5%; right:5%; background:#eee;}
.footer {bottom:0; width:80%; right:10%; position:fixed;}
.gototop {bottom:1px; right:1px; position:fixed;}
@media print { .footer {bottom:0; width:80%; right:10%; position:absolute; }
.gototop {display:none;}}

should give a similar looking layout on

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- @(#) $Id$ -->
<head>
<title>HTML Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Generator" content="almostbob" />
<meta name="Keywords" content="your,keywords,here" />
<meta name="Description" content="." />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="style.css.php" />
</head>
<body>
<span name='top'></span>
<a href='#top' class='gototop'>&uparr; top</a>
<div class='footer'>copyright, contact, nav</div>
<div class='firstdiv'>content<p>bal bla</p></div>
</body></html>
almostbob 866 Retired: passive income ROCKS

An alternate approach, in sessions its not so difficult, is to make the page function differently if [back]ed into(also if direct accessed when you dont want it).
the code is already in the page so no need to mess with browser history, but it displays just a "can't do this , Return to correct page, or, Login/Logout"