Search code examples
phpscopesuperglobals

$_GET[] doesn't work in included file?


I have a webpage which holds the number of the page to display:

mydomain.net/index.php?page=42

This works alright. Now I want to display the page only when a particular cookie is set, and I moved most of the body to an include file, so that index.php only has

<?php 
    if ($cookie_ok):
        include("http://mydomain.net/index_d6skrif9.php"); 
    else:
        include("http://mydomain.net/noaccess.inc"); 
    endif 
?>

and now the $_GET["page"] in the include file, which is supposed to retrieve the page number returns nothing.

I read that $_GET[] is a superglobal and that superglobals' scopes are across include files. So what's wrong here, and how can I use the page number in the include file?


Solution

  • You'll need to include them locally, not over-the-web:

    if ($cookie_ok) 
        include("index_d6skrif9.php"); 
    else
        include("noaccess.inc"); 
    endif 
    

    By using URLs, you're making a web-request and the server executes the PHP in the file and returns the contents (making it have its own set of super-globals).