\label{Guts_Apache_Env} The environment is accessible through the global hash named \%env. In addition to the standard variables placed in the environment by the Apache server, LON-CAPA places a lot of information in the \%env. You can see this information by going to \texttt{/adm/test}; the top part of that screen will show your current \%env. (You may need to modify \texttt{/home/httpd/lonTabs/htpasswd} before you can view that handler and change the password for \texttt{lonadm}.) Many of the environment variables are primarily useful to the authentication and permission routines (such as \texttt{Apache::lonnet::allowed}), and are very rarely directly manipulated. Generally, the \%env is informally organized into {}``namespaces'', such as {}``browser'' (containing browser information), {}``course'' (containing course-specific information), etc. For the following table, the full name of the variable is the name shown on the left, prepended by the section it is in. For instance, the first \%env member shown below is \$env\{'browser.mathml'\}. Only generally useful portions of the \%env are covered here. \begin{longtable}{|c|c|} \hline \textbf{\%env name}& \textbf{Description}\tabularnewline \hline \endfirsthead \textbf{browser:}& \tabularnewline \hline .mathml& if true, browser support MathML\tabularnewline \hline .os& indicates OS of browser\tabularnewline \hline .type& indicates type of browser ({}``ie'', {}``mozilla'', etc)\tabularnewline \hline .version& version of the browser\tabularnewline \hline \textbf{environment:}& \tabularnewline \hline .firstname& user's firstname\tabularnewline \hline .generation& user's generation ({}``1st'', {}``jr.'', etc)\tabularnewline \hline .id& institution-specific ID number\tabularnewline \hline .lastname& user's lastname\tabularnewline \hline .middlename& user's middle name\tabularnewline \hline .remote& 'on' if the user has the remote open\tabularnewline \hline \textbf{request:}& \tabularnewline \hline .course.fn& {}``full name'' of the course directory\tabularnewline \hline .course.id& ID of the course currently logged into\tabularnewline \hline .course.sec& current section of the course the user is in\tabularnewline \hline .course.uri& URI of the top-level map\tabularnewline \hline .filename& requested filename for current request\tabularnewline \hline .host& originating IP of request\tabularnewline \hline .role& full role designation for the course\tabularnewline \hline .role.adv& whether the user is {}``advanced''; generally don't use\tabularnewline \hline .role.domain& domain of the current course\tabularnewline \hline \textbf{user:}& \tabularnewline \hline .adv& whether the user is {}``advanced''; generally don't use\tabularnewline \hline .author& whether the user is an author\tabularnewline \hline .domain& domain the user is from\tabularnewline \hline .home& user's home server\tabularnewline \hline .name& user's login name\tabularnewline \hline \end{longtable} Other variables are frequently available, and you can add new ones easily; see \texttt{Apache::lonnet::appenv()} and friends.