phpsession-staterequest-uri

Show specific content only on the domain home page to unsigned users


I need to display the login form located in the external php file common for all pages of the site only on the homepage which may look like www.domain.com, www.domain.com/ or www.domain.com/index.php, to unsigned visitors only.

I've made the following code to put before the braces:

if(!isset($_SESSION["session"])
and
$_SERVER['REQUEST_URI'] === '/index.php'
or
$_SERVER['REQUEST_URI'] === '/')

but while it obeys URI rules and hides the form on secondary pages it still shows the login form to signed in visitors on the home page.

And I'm sure there should be other glitches.

What have I missed?


Solution

  • I think you must put OR condition in a brackets.

    So, it must be:

    if (
      !isset($_SESSION["session"]) and 
      ($_SERVER['REQUEST_URI'] === '/index.php' or $_SERVER['REQUEST_URI'] === '/')
    ) {
      // Your code
    }