john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

php server phpinfo global variables user ip and dir

phpinfo Will show you how your apache/php system is set up (DO NOT leave this info publicly available!)

e.g. setup a file called test.php
<?php
    phpversion();
    phpinfo();
?>

chown root:www-data test.php
chmod 550 test.php

When you browse to http://mysite.com/test.php
you'll notice nice variables like REMOTE_ADDR and REMOTE_USER

e.g.
$user=apache_getenv(REMOTE_USER)
echo $user;

A COMPLETE TABLE LISTING CAN BE MADE...

<?php

echo "<table border=\"1\">";
echo "<tr><td>" .$_SERVER['argv'] ."</td><td>argv</td></tr>";
echo "<tr><td>" .$_SERVER['argc'] ."</td><td>argc</td></tr>";
echo "<tr><td>" .$_SERVER['GATEWAY_INTERFACE'] ."</td><td>GATEWAY_INTERFACE</td></tr>";
echo "<tr><td>" .$_SERVER['SERVER_ADDR'] ."</td><td>SERVER_ADDR</td></tr>";
echo "<tr><td>" .$_SERVER['SERVER_NAME'] ."</td><td>SERVER_NAME</td></tr>";
echo "<tr><td>" .$_SERVER['SERVER_SOFTWARE'] ."</td><td>SERVER_SOFTWARE</td></tr>";
echo "<tr><td>" .$_SERVER['SERVER_PROTOCOL'] ."</td><td>SERVER_PROTOCOL</td></tr>";
echo "<tr><td>" .$_SERVER['REQUEST_METHOD'] ."</td><td>REQUEST_METHOD</td></tr>";
echo "<tr><td>" .$_SERVER['REQUEST_TIME'] ."</td><td>REQUEST_TIME</td></tr>";
echo "<tr><td>" .$_SERVER['QUERY_STRING'] ."</td><td>QUERY_STRING</td></tr>";
echo "<tr><td>" .$_SERVER['DOCUMENT_ROOT'] ."</td><td>DOCUMENT_ROOT</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_ACCEPT'] ."</td><td>HTTP_ACCEPT</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_ACCEPT_CHARSET'] ."</td><td>HTTP_ACCEPT_CHARSET</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_ACCEPT_ENCODING'] ."</td><td>HTTP_ACCEPT_ENCODING</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_ACCEPT_LANGUAGE'] ."</td><td>HTTP_ACCEPT_LANGUAGE</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_CONNECTION'] ."</td><td>HTTP_CONNECTION</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_HOST'] ."</td><td>HTTP_HOST</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_REFERER'] ."</td><td>HTTP_REFERER</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_USER_AGENT'] ."</td><td>HTTP_USER_AGENT</td></tr>";
echo "<tr><td>" .$_SERVER['HTTPS'] ."</td><td>HTTPS</td></tr>";
echo "<tr><td>" .$_SERVER['REMOTE_ADDR'] ."</td><td>REMOTE_ADDR</td></tr>";
echo "<tr><td>" .$_SERVER['REMOTE_HOST'] ."</td><td>REMOTE_HOST</td></tr>";
echo "<tr><td>" .$_SERVER['REMOTE_PORT'] ."</td><td>REMOTE_PORT</td></tr>";
echo "<tr><td>" .$_SERVER['SCRIPT_FILENAME'] ."</td><td>SCRIPT_FILENAME</td></tr>";
echo "<tr><td>" .$_SERVER['SERVER_ADMIN'] ."</td><td>SERVER_ADMIN</td></tr>";
echo "<tr><td>" .$_SERVER['SERVER_PORT'] ."</td><td>SERVER_PORT</td></tr>";
echo "<tr><td>" .$_SERVER['SERVER_SIGNATURE'] ."</td><td>SERVER_SIGNATURE</td></tr>";
echo "<tr><td>" .$_SERVER['PATH_TRANSLATED'] ."</td><td>PATH_TRANSLATED</td></tr>";
echo "<tr><td>" .$_SERVER['SCRIPT_NAME'] ."</td><td>SCRIPT_NAME</td></tr>";
echo "<tr><td>" .$_SERVER['REQUEST_URI'] ."</td><td>REQUEST_URI</td></tr>";
echo "<tr><td>" .$_SERVER['PHP_AUTH_DIGEST'] ."</td><td>PHP_AUTH_DIGEST</td></tr>";
echo "<tr><td>" .$_SERVER['PHP_AUTH_USER'] ."</td><td>PHP_AUTH_USER</td></tr>";
echo "<tr><td>" .$_SERVER['PHP_AUTH_PW'] ."</td><td>PHP_AUTH_PW</td></tr>";
echo "<tr><td>" .$_SERVER['AUTH_TYPE'] ."</td><td>AUTH_TYPE</td></tr>";
echo "</table>"

?>


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SIMILARLY THE APACHE php commands allow you to request the headers etc.
http://www.php.net/manual/en/ref.apache.php

$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
YOU CAN USE THESE VARIABLES TO CREATE AN INDEX.PHP LISTING FILES AND DIRS

<?php

$servername = $_SERVER['SERVER_NAME'];
$serverip = $_SERVER['SERVER_ADDR'];
$docroot = $_SERVER['DOCUMENT_ROOT'];
$page = $_SERVER['PHP_SELF'];
$querystring = $_SERVER['QUERY_STRING'];
$uri = $_SERVER['REQUEST_URI'];

echo "SERVER_ADDR:   " . $serverip . "<br>";
echo "SERVER_NAME:   " . $servername . "<br>";
echo "PHP_SELF:      " . $page . "<br>";
echo "DOCUMENT_ROOT: " . $docroot . "<br>";
echo "QUERY_STRING:  " . $querystring . "<br>";
echo "REQUEST_URI:   " . $uri . "<br>";

echo "Put it together to get: " . $servername . $page . $querystring . "<br>";

$d = dir( getcwd() );
echo "Handle: " . $d->handle . ", Path (not necessarily accurate): " . $d->path . "\n<br>";
echo "<title>" . $d->path . "/</title>";

$dh = opendir( getcwd() );

while (false !== ($file = readdir($dh)))
{
    if( $file != "." && $file != ".." ) //don't test the root directories
    {
        if( is_file($file) )
        {   $filelist[] = $file;    }
        else
        {   $dirlist[] = $file;     }
    }
}

echo "\n" . getcwd() . " contains " . sizeof($filelist) . " files and " .
    sizeof($dirlist) . " directories\n<br>\n";

echo "<table>\n";                       //a table for our dir/file names & sizes

if( $dirlist[0] != NULL )               //maybe there are no directories
{
    sort($dirlist);
    foreach ($dirlist as $value)
    {
        echo "<tr>";
        echo "<td><a href=\"" . $value . "\">" . $value . "</a></td>";
        echo "<td>&nbsp;</td>";
        echo "<td>" . date("dMy H:s T", filemtime($value)) . "</td>";
        echo "</tr>\n";
    }
}

sort($filelist);
foreach ($filelist as $value)
{
    echo "<tr>";
    echo "<td><a href=\"" . $value . "\">" . $value . "</a></td>";
    echo "<td>&nbsp;</td>";
    echo "<td>" . filesize($value) . " bytes</td>";
    echo "<td>&nbsp;</td>";
    echo "<td>" . date("dMy H:s T", filemtime($value)) . "</td>";
    echo "</tr>\n";
}
echo "</table>";

closedir($dh);
$d->close();
echo "\n";
?>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SUPERGLOBALS

Several predefined variables in PHP are "superglobals", which means they are
available in all scopes throughout a script. There is no need to do global
$variable; to access them within functions or methods.

These superglobal variables are:
$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV

  • « php start download with readfile
  • php self calling form »

Published

Feb 6, 2010

Category

php

~464 words

Tags

  • and 29
  • dir 4
  • global 2
  • ip 8
  • php 82
  • phpinfo 1
  • server 66
  • user 18
  • variables 5