Re: [PHP] navigation include not functioning

2009-08-06 Thread tedd

At 10:00 AM -0700 8/5/09, Allen McCabe wrote:

-snip-

If this sounds like something you are familiar with (former issues and
whatnot) please let me know what I'm doing wrong.


Try this:

http://sperling.com/examples/include-demo/

If you follow what's given there, you'll be further along on includes.

After that, you can try smart navigation:

http://sperling.com/examples/smart-menu/

HTH's,

tedd
--
---
http://sperling.com  http://ancientstones.com  http://earthstones.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] navigation include not functioning

2009-08-05 Thread Allen McCabe
I am trying to generate pages by importing content in includes, and using my
navigation include to tell PHP to replace a $thisPage variable which all the
includes use ?php include('phpincludes/' . $thisPage . '.php') ?

The idea behind it (I know tons of people do it, but I'm new to this
concept), is to have a 'layout' page where only a variable changes using
$_GET on an href (index.php?page=services or index.php?page=about) to load
the new 'pages'.

PROBLEM:
All my links are displaying the current page state, and links are not
building around the link text (hrefs are built conditionally with if
$thisPage != services then build the link, otherwise leave it as normal
text). Same thing with the background image behind the link text (to
indicate a page's current position). If the condition is not true, all the
links (except the true current 'page') are supposed reload index.php and
pass a variable to itself to place into $thisPage using
href=index.php?page= (after which I have a variable which stores about
or services within the if statement near the link text.

If this sounds like something you are familiar with (former issues and
whatnot) please let me know what I'm doing wrong. I would be happy to give
you any code you want to look at (index.php or navigation.php, whatever).

Thanks again for your help PHP gurus!


Re: [PHP] navigation include not functioning

2009-08-05 Thread Jerry Wilborn
I'm having trouble understanding your description of the problem.  Can you
tell us what you're seeing and what you expect to see?
Jerry Wilborn
jerrywilb...@gmail.com


On Wed, Aug 5, 2009 at 12:00 PM, Allen McCabe allenmcc...@gmail.com wrote:

 I am trying to generate pages by importing content in includes, and using
 my
 navigation include to tell PHP to replace a $thisPage variable which all
 the
 includes use ?php include('phpincludes/' . $thisPage . '.php') ?

 The idea behind it (I know tons of people do it, but I'm new to this
 concept), is to have a 'layout' page where only a variable changes using
 $_GET on an href (index.php?page=services or index.php?page=about) to load
 the new 'pages'.

 PROBLEM:
 All my links are displaying the current page state, and links are not
 building around the link text (hrefs are built conditionally with if
 $thisPage != services then build the link, otherwise leave it as normal
 text). Same thing with the background image behind the link text (to
 indicate a page's current position). If the condition is not true, all the
 links (except the true current 'page') are supposed reload index.php and
 pass a variable to itself to place into $thisPage using
 href=index.php?page= (after which I have a variable which stores about
 or services within the if statement near the link text.

 If this sounds like something you are familiar with (former issues and
 whatnot) please let me know what I'm doing wrong. I would be happy to give
 you any code you want to look at (index.php or navigation.php, whatever).

 Thanks again for your help PHP gurus!



Re: [PHP] navigation include not functioning

2009-08-05 Thread Allen McCabe
Sure.

When I load my site, default.php loads ( displaying:
http://uplinkdesign.hostzi.com/ in the browser as expected). $thisPage is
set to about via:

?php
if (!isset($thisPage)) {
 $thisPage=about;
 } else {
 $thisPage = addslashes($_GET['page']);
 }
?

in the head tags.


I am seeing this:

The first 2 includes work just fine, loading to proper middle section and
proper right-hand-side page content, the navigation include also loads, but
all the of tabs (background images) are the currentpage image, as opposed
to not, as they should be (the the exception of the About Us background
image).

It seems that $thisPage is equal to all four values, so all the if
statements within navigation tell PHP to load the current page image for all
4 links.

Does this help?
On Wed, Aug 5, 2009 at 10:10 AM, Jerry Wilborn jerrywilb...@gmail.comwrote:

 I'm having trouble understanding your description of the problem.  Can you
 tell us what you're seeing and what you expect to see?
 Jerry Wilborn
 jerrywilb...@gmail.com



 On Wed, Aug 5, 2009 at 12:00 PM, Allen McCabe allenmcc...@gmail.comwrote:

 I am trying to generate pages by importing content in includes, and using
 my
 navigation include to tell PHP to replace a $thisPage variable which all
 the
 includes use ?php include('phpincludes/' . $thisPage . '.php') ?

 The idea behind it (I know tons of people do it, but I'm new to this
 concept), is to have a 'layout' page where only a variable changes using
 $_GET on an href (index.php?page=services or index.php?page=about) to load
 the new 'pages'.

 PROBLEM:
 All my links are displaying the current page state, and links are not
 building around the link text (hrefs are built conditionally with if
 $thisPage != services then build the link, otherwise leave it as normal
 text). Same thing with the background image behind the link text (to
 indicate a page's current position). If the condition is not true, all the
 links (except the true current 'page') are supposed reload index.php and
 pass a variable to itself to place into $thisPage using
 href=index.php?page= (after which I have a variable which stores about
 or services within the if statement near the link text.

 If this sounds like something you are familiar with (former issues and
 whatnot) please let me know what I'm doing wrong. I would be happy to give
 you any code you want to look at (index.php or navigation.php, whatever).

 Thanks again for your help PHP gurus!





Re: [PHP] navigation include not functioning

2009-08-05 Thread Martin Scotta
I think you are looking for something like this:

$page = array_key_exists( 'page', $_GET ) ? GET['page'] : 'index';

Then you MUST sanitize the $page variable.

I often use the querystring to wrapp the module you are requesting:

www.example.org/?path/to/molude (note that .htaccess is required)

# the you can access by
echo $path = $_SERVER['QUERY_STRING'];

On Wed, Aug 5, 2009 at 2:19 PM, Allen McCabeallenmcc...@gmail.com wrote:
 Sure.

 When I load my site, default.php loads ( displaying:
 http://uplinkdesign.hostzi.com/ in the browser as expected). $thisPage is
 set to about via:

 ?php
 if (!isset($thisPage)) {
  $thisPage=about;
  } else {
  $thisPage = addslashes($_GET['page']);
  }
 ?

 in the head tags.


 I am seeing this:

 The first 2 includes work just fine, loading to proper middle section and
 proper right-hand-side page content, the navigation include also loads, but
 all the of tabs (background images) are the currentpage image, as opposed
 to not, as they should be (the the exception of the About Us background
 image).

 It seems that $thisPage is equal to all four values, so all the if
 statements within navigation tell PHP to load the current page image for all
 4 links.

 Does this help?
 On Wed, Aug 5, 2009 at 10:10 AM, Jerry Wilborn jerrywilb...@gmail.comwrote:

 I'm having trouble understanding your description of the problem.  Can you
 tell us what you're seeing and what you expect to see?
 Jerry Wilborn
 jerrywilb...@gmail.com



 On Wed, Aug 5, 2009 at 12:00 PM, Allen McCabe allenmcc...@gmail.comwrote:

 I am trying to generate pages by importing content in includes, and using
 my
 navigation include to tell PHP to replace a $thisPage variable which all
 the
 includes use ?php include('phpincludes/' . $thisPage . '.php') ?

 The idea behind it (I know tons of people do it, but I'm new to this
 concept), is to have a 'layout' page where only a variable changes using
 $_GET on an href (index.php?page=services or index.php?page=about) to load
 the new 'pages'.

 PROBLEM:
 All my links are displaying the current page state, and links are not
 building around the link text (hrefs are built conditionally with if
 $thisPage != services then build the link, otherwise leave it as normal
 text). Same thing with the background image behind the link text (to
 indicate a page's current position). If the condition is not true, all the
 links (except the true current 'page') are supposed reload index.php and
 pass a variable to itself to place into $thisPage using
 href=index.php?page= (after which I have a variable which stores about
 or services within the if statement near the link text.

 If this sounds like something you are familiar with (former issues and
 whatnot) please let me know what I'm doing wrong. I would be happy to give
 you any code you want to look at (index.php or navigation.php, whatever).

 Thanks again for your help PHP gurus!







-- 
Martin Scotta

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] navigation include not functioning

2009-08-05 Thread ollisso
On Wed, 05 Aug 2009 20:19:00 +0300, Allen McCabe allenmcc...@gmail.com  
wrote:



Sure.

When I load my site, default.php loads ( displaying:
http://uplinkdesign.hostzi.com/ in the browser as expected). $thisPage is
set to about via:

?php
if (!isset($thisPage)) {
 $thisPage=about;
 } else {
 $thisPage = addslashes($_GET['page']);
 }
?

in the head tags.


I am seeing this:

The first 2 includes work just fine, loading to proper middle section and
proper right-hand-side page content, the navigation include also loads,  
but
all the of tabs (background images) are the currentpage image, as  
opposed

to not, as they should be (the the exception of the About Us background
image).

It seems that $thisPage is equal to all four values, so all the if
statements within navigation tell PHP to load the current page image for  
all

4 links.

Does this help?


Looks like you need something like that:
$pages  = array(
// list of modules you have, for example:
 'about' , 'help', etc
);
$page	= isset($_GET['page'])  isset($pages[$_GET['page']])	?   
$_GET['page'] : 'about';

// about is default page here

then just:
include 'modules/'.$page.'.php';

Always remember that you have to check what is included.
Best approach(if possible) to have a predefined list of all modules which  
can be included.


Else, there is some nasty things like:
?page=../index.php
(infinity recurssion)

?page=http://otherhost.com/hacker.
(inclusion of malicious script)
and so on.




On Wed, Aug 5, 2009 at 10:10 AM, Jerry Wilborn  
jerrywilb...@gmail.comwrote:



Look

I'm having trouble understanding your description of the problem.  Can  
you

tell us what you're seeing and what you expect to see?
Jerry Wilborn
jerrywilb...@gmail.com



On Wed, Aug 5, 2009 at 12:00 PM, Allen McCabe  
allenmcc...@gmail.comwrote:


I am trying to generate pages by importing content in includes, and  
using

my
navigation include to tell PHP to replace a $thisPage variable which  
all

the
includes use ?php include('phpincludes/' . $thisPage . '.php') ?

The idea behind it (I know tons of people do it, but I'm new to this
concept), is to have a 'layout' page where only a variable changes  
using
$_GET on an href (index.php?page=services or index.php?page=about) to  
load

the new 'pages'.

PROBLEM:
All my links are displaying the current page state, and links are not
building around the link text (hrefs are built conditionally with if
$thisPage != services then build the link, otherwise leave it as normal
text). Same thing with the background image behind the link text (to
indicate a page's current position). If the condition is not true, all  
the
links (except the true current 'page') are supposed reload index.php  
and

pass a variable to itself to place into $thisPage using
href=index.php?page= (after which I have a variable which stores  
about

or services within the if statement near the link text.

If this sounds like something you are familiar with (former issues and
whatnot) please let me know what I'm doing wrong. I would be happy to  
give
you any code you want to look at (index.php or navigation.php,  
whatever).


Thanks again for your help PHP gurus!











--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] navigation include not functioning

2009-08-05 Thread Allen McCabe
Okay, I see how href=?page=contact would work, and I do indeed have only
one file (which loads includes), but it still is not working. Clicking a
link, be href=?page=contact, href=?page=services, whatever, it still loads
the page with the ?page=whatever attached to the URL, but it is not
subsituting the $page variable within the include snippets, and it just
loads the 'about' versions of all includes (/phpincludes/about_content.php
as opposed to /phpincludes/services_content.php or whichever).

This is really stumping me and try as I might I cannot see why it will not
work. Here is some of my code as it is currently:

On default.php:

[code=default.php]

html
head
?php

$pages = array(
// list of includes:
 'about' , 'services', 'portfolio', 'contact'
);
$page = isset($_GET['page'])  isset($pages[$_GET['page']])  ?
$_GET['page'] : 'about';
// about is default page here

?
title

[/code]

then in the body tags

[code=default.php]

td?php include('phpincludes/' . $page . '_centerbar.php'); ?/td
/tr
 ?php include('phpincludes/nav2.php'); ?
 tr

[/code]
[code=nav2.php]

a href=?page=servicesSERVICES/a

[/code]

It is surprisingly little code and I am starting to wonder if any php
settings on my server are inhibiting this. What do you think?



2009/8/5 ollisso olli...@fromru.com

 On Wed, 05 Aug 2009 22:08:30 +0300, Allen McCabe allenmcc...@gmail.com
 wrote:

 You can do something like that:

 links:
 a href='?page=contact'Contact/a

 This will work if you have only one file, all the time and it is default
 one for current folder. (normally that is index.php, might be default.php in
 your case)

 Second option is to use more harder approach:

 $pos=
 min(strpos($_SERVER['QUERY_STRING'],''),strpos($_SERVER['QUERY_STRING'],'='));
 $act= ($pos!==false) ? substr($_SERVER['QUERY_STRING'], 0,  $pos) :
 $_SERVER['QUERY_STRING'];
 $page   = strtolower($act);

 then you can use links like:
 href='?contact'
 or if you need:
 href='?contact=1' (in case of GET forms)


 Third option is to use mod_rewrite, but this is slightly harder :)

 But then you will be able to use links like:
 www.domain.com/contact/
 (which will work like: index.php?page=contact internally)

 About checking what is included:
 Imagine following scenario:

 $page   = isset($_GET['page']) ? $_GET['page'] : 'about';

 include 'modules/'.$page.'.php';

 Problem here is that you can include ANY file.
 For example:
 ?page=../index
 will work as:
 include 'modules/../index.php';

 Which is crearly not what is intended.

 There is also much more dangerous scenarios of this.

 I hope this explains something :)



 Excellent, your snippet is working nicely. Thank you!

 Unfortunately, when I click a link ( a href=
 http://uplinkdesign.hostzi.com/default.php?page=contact; ),
 deafult.php?contact shows in the browser, but the default (about) content
 is
 loading.

 Also, I don't know what you mean by checking what is included.

 2009/8/5 ollisso olli...@fromru.com

 On Wed, 05 Aug 2009 20:19:00 +0300, Allen McCabe allenmcc...@gmail.com
 wrote:

 Sure.


 When I load my site, default.php loads ( displaying:
 http://uplinkdesign.hostzi.com/ in the browser as expected). $thisPage
 is
 set to about via:

 ?php
 if (!isset($thisPage)) {
  $thisPage=about;
  } else {
  $thisPage = addslashes($_GET['page']);
  }
 ?

 in the head tags.


 I am seeing this:

 The first 2 includes work just fine, loading to proper middle section
 and
 proper right-hand-side page content, the navigation include also loads,
 but
 all the of tabs (background images) are the currentpage image, as
 opposed
 to not, as they should be (the the exception of the About Us background
 image).

 It seems that $thisPage is equal to all four values, so all the if
 statements within navigation tell PHP to load the current page image for
 all
 4 links.

 Does this help?


 Looks like you need something like that:
 $pages  = array(
 // list of modules you have, for example:
  'about' , 'help', etc
 );
 $page   = isset($_GET['page'])  isset($pages[$_GET['page']])  ?
  $_GET['page'] : 'about';
 // about is default page here

 then just:
 include 'modules/'.$page.'.php';

 Always remember that you have to check what is included.
 Best approach(if possible) to have a predefined list of all modules which
 can be included.

 Else, there is some nasty things like:
 ?page=../index.php
 (infinity recurssion)

 ?page=http://otherhost.com/hacker.
 (inclusion of malicious script)
 and so on.




 On Wed, Aug 5, 2009 at 10:10 AM, Jerry Wilborn jerrywilb...@gmail.com

 wrote:

 Look



  I'm having trouble understanding your description of the problem.  Can

 you
 tell us what you're seeing and what you expect to see?
 Jerry Wilborn
 jerrywilb...@gmail.com



 On Wed, Aug 5, 2009 at 12:00 PM, Allen McCabe allenmcc...@gmail.com
 wrote:

 I am trying to generate pages by importing content in includes, and
 using

 my
 navigation include to tell PHP to replace a $thisPage variable which
 all
 the
 includes use 

Re: [PHP] navigation include not functioning

2009-08-05 Thread Martin Scotta
You are using a value-filled array as a key-filled. Try this snippet
and look the results...

$pages = array('about' , 'services', 'portfolio', 'contact');
$page = array_key_exists( 'page', $_GET ) ? $_GET[ 'page' ] : 'about';
/*if*/ false === array_search( $page, $pages, true )  (
$page = 'about'
);

# note the sintax used to avoid if-statement
# this has the same behaviour, but with less performance
$pages = array('about' , 'services', 'portfolio', 'contact');
$page = array_key_exists( 'page', $_GET ) ? $_GET[ 'page' ] : 'about';
if( false === array_search( $page, $pages, true ))
{
$page = 'about';
}



On Wed, Aug 5, 2009 at 5:36 PM, Allen McCabeallenmcc...@gmail.com wrote:
 Okay, I see how href=?page=contact would work, and I do indeed have only
 one file (which loads includes), but it still is not working. Clicking a
 link, be href=?page=contact, href=?page=services, whatever, it still loads
 the page with the ?page=whatever attached to the URL, but it is not
 subsituting the $page variable within the include snippets, and it just
 loads the 'about' versions of all includes (/phpincludes/about_content.php
 as opposed to /phpincludes/services_content.php or whichever).

 This is really stumping me and try as I might I cannot see why it will not
 work. Here is some of my code as it is currently:

 On default.php:

 [code=default.php]

 html
 head
 ?php

 $pages = array(
 // list of includes:
  'about' , 'services', 'portfolio', 'contact'
 );
 $page = isset($_GET['page'])  isset($pages[$_GET['page']])  ?
 $_GET['page'] : 'about';
 // about is default page here

 ?
 title

 [/code]

 then in the body tags

 [code=default.php]

 td?php include('phpincludes/' . $page . '_centerbar.php'); ?/td
 /tr
  ?php include('phpincludes/nav2.php'); ?
  tr

 [/code]
 [code=nav2.php]

 a href=?page=servicesSERVICES/a

 [/code]

 It is surprisingly little code and I am starting to wonder if any php
 settings on my server are inhibiting this. What do you think?



 2009/8/5 ollisso olli...@fromru.com

 On Wed, 05 Aug 2009 22:08:30 +0300, Allen McCabe allenmcc...@gmail.com
 wrote:

 You can do something like that:

 links:
 a href='?page=contact'Contact/a

 This will work if you have only one file, all the time and it is default
 one for current folder. (normally that is index.php, might be default.php in
 your case)

 Second option is to use more harder approach:

 $pos    =
 min(strpos($_SERVER['QUERY_STRING'],''),strpos($_SERVER['QUERY_STRING'],'='));
 $act    = ($pos!==false) ? substr($_SERVER['QUERY_STRING'], 0,  $pos) :
 $_SERVER['QUERY_STRING'];
 $page   = strtolower($act);

 then you can use links like:
 href='?contact'
 or if you need:
 href='?contact=1' (in case of GET forms)


 Third option is to use mod_rewrite, but this is slightly harder :)

 But then you will be able to use links like:
 www.domain.com/contact/
 (which will work like: index.php?page=contact internally)

 About checking what is included:
 Imagine following scenario:

 $page   = isset($_GET['page']) ? $_GET['page'] : 'about';

 include 'modules/'.$page.'.php';

 Problem here is that you can include ANY file.
 For example:
 ?page=../index
 will work as:
 include 'modules/../index.php';

 Which is crearly not what is intended.

 There is also much more dangerous scenarios of this.

 I hope this explains something :)



 Excellent, your snippet is working nicely. Thank you!

 Unfortunately, when I click a link ( a href=
 http://uplinkdesign.hostzi.com/default.php?page=contact; ),
 deafult.php?contact shows in the browser, but the default (about) content
 is
 loading.

 Also, I don't know what you mean by checking what is included.

 2009/8/5 ollisso olli...@fromru.com

 On Wed, 05 Aug 2009 20:19:00 +0300, Allen McCabe allenmcc...@gmail.com
 wrote:

 Sure.


 When I load my site, default.php loads ( displaying:
 http://uplinkdesign.hostzi.com/ in the browser as expected). $thisPage
 is
 set to about via:

 ?php
 if (!isset($thisPage)) {
  $thisPage=about;
  } else {
  $thisPage = addslashes($_GET['page']);
  }
 ?

 in the head tags.


 I am seeing this:

 The first 2 includes work just fine, loading to proper middle section
 and
 proper right-hand-side page content, the navigation include also loads,
 but
 all the of tabs (background images) are the currentpage image, as
 opposed
 to not, as they should be (the the exception of the About Us background
 image).

 It seems that $thisPage is equal to all four values, so all the if
 statements within navigation tell PHP to load the current page image for
 all
 4 links.

 Does this help?


 Looks like you need something like that:
 $pages  = array(
 // list of modules you have, for example:
  'about' , 'help', etc
 );
 $page   = isset($_GET['page'])  isset($pages[$_GET['page']])  ?
  $_GET['page'] : 'about';
 // about is default page here

 then just:
 include 'modules/'.$page.'.php';

 Always remember that you have to check what is included.
 Best approach(if possible) to have a 

Re: [PHP] navigation include not functioning (RESOLVED)

2009-08-05 Thread Allen McCabe
I just wanted to let know I figured out my last issue (last as in, for now).

In my navigation.php include file, I had if ($page = about) echo href
I changed it to if ($page == about) echo and it suddenly worked! Imagine
that...

Thanks all for you help, you are celebrities in my book now.

On Wed, Aug 5, 2009 at 1:44 PM, Martin Scotta martinsco...@gmail.comwrote:

 You are using a value-filled array as a key-filled. Try this snippet
 and look the results...

 $pages = array('about' , 'services', 'portfolio', 'contact');
 $page = array_key_exists( 'page', $_GET ) ? $_GET[ 'page' ] : 'about';
 /*if*/ false === array_search( $page, $pages, true )  (
$page = 'about'
 );

 # note the sintax used to avoid if-statement
 # this has the same behaviour, but with less performance
 $pages = array('about' , 'services', 'portfolio', 'contact');
 $page = array_key_exists( 'page', $_GET ) ? $_GET[ 'page' ] : 'about';
 if( false === array_search( $page, $pages, true ))
 {
$page = 'about';
  }



 On Wed, Aug 5, 2009 at 5:36 PM, Allen McCabeallenmcc...@gmail.com wrote:
  Okay, I see how href=?page=contact would work, and I do indeed have
 only
  one file (which loads includes), but it still is not working. Clicking a
  link, be href=?page=contact, href=?page=services, whatever, it still
 loads
  the page with the ?page=whatever attached to the URL, but it is not
  subsituting the $page variable within the include snippets, and it just
  loads the 'about' versions of all includes
 (/phpincludes/about_content.php
  as opposed to /phpincludes/services_content.php or whichever).
 
  This is really stumping me and try as I might I cannot see why it will
 not
  work. Here is some of my code as it is currently:
 
  On default.php:
 
  [code=default.php]
 
  html
  head
  ?php
 
  $pages = array(
  // list of includes:
   'about' , 'services', 'portfolio', 'contact'
  );
  $page = isset($_GET['page'])  isset($pages[$_GET['page']])  ?
  $_GET['page'] : 'about';
  // about is default page here
 
  ?
  title
 
  [/code]
 
  then in the body tags
 
  [code=default.php]
 
  td?php include('phpincludes/' . $page . '_centerbar.php'); ?/td
  /tr
   ?php include('phpincludes/nav2.php'); ?
   tr
 
  [/code]
  [code=nav2.php]
 
  a href=?page=servicesSERVICES/a
 
  [/code]
 
  It is surprisingly little code and I am starting to wonder if any php
  settings on my server are inhibiting this. What do you think?
 
 
 
  2009/8/5 ollisso olli...@fromru.com
 
  On Wed, 05 Aug 2009 22:08:30 +0300, Allen McCabe allenmcc...@gmail.com
 
  wrote:
 
  You can do something like that:
 
  links:
  a href='?page=contact'Contact/a
 
  This will work if you have only one file, all the time and it is default
  one for current folder. (normally that is index.php, might be
 default.php in
  your case)
 
  Second option is to use more harder approach:
 
  $pos=
 
 min(strpos($_SERVER['QUERY_STRING'],''),strpos($_SERVER['QUERY_STRING'],'='));
  $act= ($pos!==false) ? substr($_SERVER['QUERY_STRING'], 0,  $pos) :
  $_SERVER['QUERY_STRING'];
  $page   = strtolower($act);
 
  then you can use links like:
  href='?contact'
  or if you need:
  href='?contact=1' (in case of GET forms)
 
 
  Third option is to use mod_rewrite, but this is slightly harder :)
 
  But then you will be able to use links like:
  www.domain.com/contact/
  (which will work like: index.php?page=contact internally)
 
  About checking what is included:
  Imagine following scenario:
 
  $page   = isset($_GET['page']) ? $_GET['page'] : 'about';
 
  include 'modules/'.$page.'.php';
 
  Problem here is that you can include ANY file.
  For example:
  ?page=../index
  will work as:
  include 'modules/../index.php';
 
  Which is crearly not what is intended.
 
  There is also much more dangerous scenarios of this.
 
  I hope this explains something :)
 
 
 
  Excellent, your snippet is working nicely. Thank you!
 
  Unfortunately, when I click a link ( a href=
  http://uplinkdesign.hostzi.com/default.php?page=contact; ),
  deafult.php?contact shows in the browser, but the default (about)
 content
  is
  loading.
 
  Also, I don't know what you mean by checking what is included.
 
  2009/8/5 ollisso olli...@fromru.com
 
  On Wed, 05 Aug 2009 20:19:00 +0300, Allen McCabe 
 allenmcc...@gmail.com
  wrote:
 
  Sure.
 
 
  When I load my site, default.php loads ( displaying:
  http://uplinkdesign.hostzi.com/ in the browser as expected).
 $thisPage
  is
  set to about via:
 
  ?php
  if (!isset($thisPage)) {
   $thisPage=about;
   } else {
   $thisPage = addslashes($_GET['page']);
   }
  ?
 
  in the head tags.
 
 
  I am seeing this:
 
  The first 2 includes work just fine, loading to proper middle section
  and
  proper right-hand-side page content, the navigation include also
 loads,
  but
  all the of tabs (background images) are the currentpage image, as
  opposed
  to not, as they should be (the the exception of the About Us
 background
  image).
 
  It seems that 

Re: [PHP] navigation include not functioning (RESOLVED)

2009-08-05 Thread Paul M Foster
On Wed, Aug 05, 2009 at 02:55:07PM -0700, Ben Dunlap wrote:

  In my navigation.php include file, I had if ($page = about) echo href
  I changed it to if ($page == about) echo and it suddenly
 worked! Imagine
  that...
 
 Another good case for putting the variable on the right side of ==:
 
if (about == $page)
 
 Then if you mis-type == as =, PHP will fail immediately with a parse
 error.
 
 It feels a little weird but if it saves a lot of head-desk moments it's
 probably worth it. Now if only I could get into the habit myself...

This is common practice for a lot of C programmers for exactly this
reason.

Paul

-- 
Paul M. Foster

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php