php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #7717 No access to server & session variables from within a class
Submitted: 2000-11-09 05:08 UTC Modified: 2000-11-09 05:23 UTC
From: p_vruggink at wish dot net Assigned:
Status: Closed Package: Class/Object related
PHP Version: 4.0.2 OS: win98/2000, Apache 1.3.12
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: p_vruggink at wish dot net
New email:
PHP Version: OS:

 

 [2000-11-09 05:08 UTC] p_vruggink at wish dot net
You can't access servervariables (e.g. $DOCUMENT_ROOT, $SERVER_NAME) or access sessionvariables directly from within a class, although you can start/stop a session within a class. Is there a class environment in PHP?

testscripts
MyRoot.php:
<?php
class MyRoot
{
  function getMyRoot()
  {
    return $DOCUMENT_ROOT;
  }
}
?>
MySession.php
<?php
class MySession
{
  function setMySession()
  {
    if(session_register("myVar"))
    {
      $myVar = "Test";
      return true;
    }
    else return false;
  }
}
?>
Test.php
<?php
  include("MyRoot.php");
  include("MySession.php");

  $root = new MyRoot();
  $sess = new MySession();

  if( $sess -> setMySession())
  {
    print "<HTML><BODY>";
    print "Session has been initiated  (id: " . session_id() . ")<BR>";
	print "session_is_registered (\"myVar\"): ";
	print session_is_registered ("myVar") ? " yes": " no";
	print "<BR>";
    print "DocumentRoot: " . $root -> getMyRoot() . "<BR>";
    print "SessionVarValue: " . $myVar;
    print "</BODY></HTML>";
  }
?>

Regards and thanks for PHP!

Peter




Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2000-11-09 05:23 UTC] hholzgra@php.net
as usual you have to use 'global $variable;' to get access
to a global variable from within a function or a class method
or use the special GLOBALS array: $GLOBALS['variable']

PHP functions do _not_ inherit the global namespace by default
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Nov 26 18:01:33 2024 UTC