Data: $_SERVER['PHP_SELF'] Data type: String Purpose: The URL path name of the current PHP file, including path-info (see $_SERVER['PATH_INFO']) and excluding URL query string. Includes leading slash. Caveat: This is after URL rewrites (i.e. it's as seen by PHP, not necessarily the original call URL). Works on web mode: Yes Works on CLI mode: Tenuous (emulated to contain just the exact call path of the CLI script, with whatever exotic relative pathname you may call with, not made absolute and not normalised or pre-resolved)
Data: $_SERVER['SCRIPT_NAME'] Data type: String Purpose: The URL path name of the current PHP file, excluding path-info and excluding URL query string. Includes leading slash. Caveat: This is after URL rewrites (i.e. it's as seen by PHP, not necessarily the original call URL). Caveat: Not set on all PHP environments, may need setting via preg_replace('#\.php/.*#', '.php', $_SERVER['PHP_SELF']). Works on web mode: Yes Works on CLI mode: Tenuous (emulated to contain just the exact call path of the CLI script, with whatever exotic relative pathname you may call with, not made absolute and not normalised or pre-resolved)
Data: $_SERVER['REDIRECT_URL'] Data type: String Purpose: The URL path name of the current PHP file, path-info is N/A and excluding URL query string. Includes leading slash. Caveat: This is before URL rewrites (i.e. it's as per the original call URL). Caveat: Not set on all PHP environments, and definitely only ones with URL rewrites. Works on web mode: Yes Works on CLI mode: No
Data: $_SERVER['REQUEST_URI'] Data type: String Purpose: The URL path name of the current PHP file, including path-info and including URL query string. Includes leading slash. Caveat: This is before URL rewrites (i.e. it's as per the original call URL). * *: I've seen at least one situation where this is not true (there was another $_SERVER variable to use instead supplied by the URL rewriter), but the author of the URL rewriter later fixed it so probably fair to dismiss this particular note. Caveat: Not set on all PHP environments, may need setting via $_SERVER['REDIRECT_URL'] . '?' . http_build_query($_GET) [if $_SERVER['REDIRECT_URL'] is set, and imperfect as we don't know what GET parameters were originally passed vs which were injected in the URL rewrite] --otherwise-- $_SERVER['PHP_SELF'] . '?' . http_build_query($_GET). Works on web mode: Yes Works on CLI mode: No
Data: $_SERVER['PATH_INFO'] Data type: String Purpose: Find the path-info, which is data after the .php filename in the URL call. It's a strange concept. Caveat: Some environments may not support it, it is best avoided unless you have complete server control Works on web mode: Yes Works on CLI mode: No
Note that if something is not set it may be missing from $_SERVER, or it may be blank, so use PHP's 'empty' function for your test.
The following code shows how the PHP session works. The function my_session_start() does almost the same thing as session_start().
________số 8_______
my_session_start();
echo '
session id: '.my_session_id().'
';
echo '
________0';
$now = date('H:i:s'); if (isset($_SESSION['last_visit_time'])) { echo '
Last Visit Time: '.$_SESSION['last_visit_time'].'
'; } echo '
Current Time: '.$now.'
';
$_SESSION['last_visit_time'] = $now;
function my_session_start() { global $phpsessid, $sessfile;