NYCPHP Meetup

[nycphp-talk] PHP and framesets

D C Krook dkrook at hotmail.com
Wed Aug 6 13:00:23 EDT 2003


Hans is right, PHP wouldn't know that it is in a frameset.  Only the client 
knows that, which is after the PHP is executed.

You can throw around the parent frame's PHP_SELF with something like this:

In the parent frameset declaration page:
-----------------------------------------
<script type="text/javascript">
var self = <?= $_SERVER['PHP_SELF'] ?>;
function getSelf () {
	return self;
}
</script>
<frameset rows="50,20,*">
    <frame name="top" src="top.php" marginwidth="0" marginheight="0" 
scrolling="auto" frameborder="0">
	<frame name="middle" src="middle.php" marginwidth="0" marginheight="0" 
scrolling="auto" frameborder="0">
    <frame name="bottom" src="bottom.php" marginwidth="0" marginheight="0" 
scrolling="auto" frameborder="0">
</frameset>
-----------------------------------------


And in the child, e.g., "top.php":
-----------------------------------------
	<script type="text/javascript">
	var par = window.parent;
	var self = par.getSelf();
	</script>
-----------------------------------------


>>This seems simple enough, but maybe it isn't that simple... Does anyone 
>>know
>>of a way to have PHP return the top level document's location? Basically I
>>have a script that references PHP_SELF... if you throw it into a frameset,
>>it naturally returns the frame source URL, not the frameset's.
>
>As far as I know, a frameset is a client-side thing, so PHP wouldn't know 
>anything about it natively.  You could, perhaps, have some kind of 
>Javascript callback to a php script, but I don't really know how you'd do 
>it in JS :)
>
>H

_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*. 
http://join.msn.com/?page=features/featuredemail




More information about the talk mailing list