Showing posts with label PHP $_SERVER. Show all posts
Showing posts with label PHP $_SERVER. Show all posts

Monday, 13 July 2015

PHP redirect – go back to previous page

To go back to the previous page the superglobal variable $_SERVER can be used.
$_SERVER['HTTP_REFERER'] has the link to the previous page.
So to redirect simply :

#Method to go to previous page


function goback(){
    header("Location: {$_SERVER['HTTP_REFERER']}");
    exit;
}
goback();

Thursday, 4 June 2015

PHP: Authentication script to authenticate users in Active Directory through LDAP.

Simple and fast authentication module when you want to authenticate your users
againt Active Directory through LDAP. The script will also store the username,
Display Name, and fully qualified DN ie;
DN=user,ou=users,ou=account,dc=domain,dc=com in a cookie. You could also
store any other attribute of the user in the cookie as well (email address, office
phone, etc...)

Note: you will need to change the server, basedn and filter variables for your
environment.

Just place an include "auth.in";
at the top of every file that you want protected.


<?
$server="XXX.XXX.XXX.XXX";    //change to ip address of ldap server
$basedn="ou=users, ou=accounts, dc=domain, dc=com";    //change to reflect the ou
and
domain that your users are in.
$script=$_SERVER['SCRIPT_NAME'];
if (isset($HTTP_COOKIE_VARS['cookie'])) {       //If cookie exists, retrieve it and
put it in an
array for use.
    $cookie=$HTTP_COOKIE_VARS['cookie'];
    }
if (isset($cookie)) {                     
    $username=$cookie['user'];
    $password=($cookie['token']);
    $fullname=$cookie['fullname'];
    $fqdn=$cookie['fqdn'];
    $dn = "cn=$username, ";
        if (!($connect = ldap_connect($server))) {
            die ("Could not connect to LDAP server");
        }

        if (!($bind = ldap_bind($connect, "$dn" . "$basedn", $password))) {
                   die ("Could not bind to $dn$basedn");
        }
    } else {
        if ((isset($_POST['username'])) && (isset($_POST['password']))) {
            $username=$_POST['username'];
            $password=$_POST['password'];
            $filter="(&(|(!(displayname=Administrator*))(!
(displayname=Admin*)))(cn=$username))";    //define an appropriate ldap search filter
to
find your users, and filter out accounts such as administrator(administrator should
be
renamed anyway!).
            $dn = "cn=$username, ";
                if (!($connect = ldap_connect($server))) {
                           die ("Could not connect to LDAP server");
                }

                if (!($bind = ldap_bind($connect, "$dn" . "$basedn",
$password))) {
                    die ("Could not bind to $dn");
                }
        $sr = ldap_search($connect, $basedn,"$filter");
        $info = ldap_get_entries($connect, $sr);
        $fullname=$info[0]["displayname"][0];
        $fqdn=$info[0]["dn"];
        setcookie("cookie[user]",$username);
        setcookie("cookie[token]",$password);
        setcookie("cookie[fullname]",$fullname);
        setcookie("cookie[fqdn]", $fqdn);
    } else {
?>


<html>
<head>
<title>Portal Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
</head>
<SCRIPT LANGUAGE="JavaScript">
    <!--
        document.onmousedown=click;
        function click()
        {
            if (event.button==2) {alert('Right-clicking has been
disabled by
the administrator.');}
        }
        
    //-->
    </SCRIPT>
<div align="center">
  <form method="post" action="<? echo $script; ?>">
         <div align="center">
            
             <table width="210" border="0" cellspacing="0" cellpadding="0">
              <tr>
              <td align="center">
              <fieldset>
                 <Legend><font face="Verdana,Tahoma,Arial,sans-serif" size="1"
color="gray">Enter Credentials</font></Legend>
                    <table border="0" cellspacing="3" cellpadding="0">
                     <tr>
                        <td align="right" valign="middle"><b><font
face="Verdana,Tahoma,Arial,sans-
serif" size="1" color="gray">Username:</font></td>
                        <td align="center" valign="middle">
                          <input class="clear" type="text" size="15" name="username">
                        </td>
                      </tr>
                      <tr>
                        <td align="right" valign="middle"><b><font
face="Verdana,Tahoma,Arial,sans-
serif" size="1" color="gray">Password:</font></td>
                        <td align="center" valign="middle">
                          <input class="pass" type="password" size="15"
name="password">
                        </td>
                      </tr>
                      </table>
                    <input type=image src="images/login.gif" alt="Login"
name="image">
                    <br>
                  </div>
                </td>
               </tr>
           </fieldset>             
             </table>
             <br>
             <table width="640"><tr><td align="center">
             <font face="Verdana,Tahoma,Arial,sans-serif" size="1"
color="silver">This System is
for the use of authorized users only.  Individuals using this computer system
without
authority, or in excess of their authority, are subject to having their activities
on this system
monitored and recorded by system personnel.  In the course of monitoring individuals
improperly using this system, or in the course of system maintenance, the activities
of
authorized users may also be monitored. Anyone using this system expressly consents
to
such monitoring and is advised that if such monitoring reveals possible criminal
activity,
system personnel may provide the evidence of such monitoring to law enforcement
officals.
This warning has been provided by the United States Department of Justice and is
intended to
ensure that monitoring of user activity is not in violation of the Communications
Privacy Act of
1986.</font>
          </td></tr></table>
            
          </div>
  </form>

</div>
</body>
</html>
<?
die ();
}
}
?>

Wednesday, 3 June 2015

PHP: Get Remote IP Address in PHP

This code allows to get the IP address from which the user is viewing the current page. 
<?php

function getRemoteIPAddress(){
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
    return $ip;
}
 
/* If your visitor comes from proxy server you have use another function
to get a real IP address: */
function getRealIPAddress(){   
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
        //check ip from share internet
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        //to check ip is pass from proxy
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }else{
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
?>

Usage

echo getRealIPAddress();

Tuesday, 2 June 2015

PHP: Check Referrer This checks if the referrer is from the site you expect it to be.

<?php
function check_ref($site = 'thiscode4u.blogspot.com')
{
 if (!array_key_exists('HTTP_REFERER', $_SERVER))
  return false;
 
 $parse = parse_url($_SERVER['HTTP_REFERER']);
 $host = $parse['host'];
 $host = str_replace('www.', '', $host);
 
 return ($host == $site);
}
?>

Usage

if (check_ref('etogre.com')) // they came from etogre.com

die('We love you =^_^= !');

else

die('We hate you -_- !');

Wednesday, 1 April 2015

PHP: Detect what browser your website is being accessed from using php

This is a short hack on how to figure out what OS you site is being accessed from. This is useful if you want to redirect to different versions of your site through php.


<?php


$iPod = stripos($_SERVER['HTTP_USER_AGENT'],"iPod");
$iPhone = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$iPad = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
$Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android");
$webOS = stripos($_SERVER['HTTP_USER_AGENT'],"webOS");


?>

Monday, 23 February 2015

PHP: Capture the requested URI and Clean up global variables

<?php
$requestURI = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']';
echo $requestURI;
?>

This snippet is more of an example of how to convert strings to lowercase characters, and then clean them up for use in scripts, etc
<?php
$_POST["name"] = strtolower(stripslashes(trim(htmlspecialchars($_POST["name"])))); $_POST["message"] = strtolower(stripslashes(trim(htmlspecialchars($_POST["message"]))));
?>

PHP: Detect browser language

If your website is multilingual, it can be useful to detect the browser language to use this language as the default. The code below will return the language used by the client’s browser.

function get_client_language($availableLanguages, $default='en'){
 if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
  $langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);

  foreach ($langs as $value){
   $choice=substr($value,0,2);
   if(in_array($choice, $availableLanguages)){
    return $choice;
   }
  }
 } 
 return $default;

Thursday, 19 February 2015

PHP select box multiple selections

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="test[]" multiple="multiple">
 <option value="one">one</option> 
<option value="two">two</option>
 <option value="three">three</option>
 <option value="four">four</option>
 <option value="five">five</option> 
</select> 
<input type="submit" value="Send" /> 
</form>


<?php
 $test=$_POST['test'];
 if ($test){
       foreach ($test as $t){
           echo 'You selected ',$t,'<br />';
        }
 } ?>

Thursday, 4 September 2014

PHP: Pre defined variables with PHP

PHP provides a large number of predefined variables to any script which it runs.PHP provides an additional set of predefined arrays containing variables from the web server the environment, and user input. These new arrays are called superglobals:
All the following variables are automatically available in every scope.

PHP Superglobals:

VariableDescription
$GLOBALS Contains a reference to every variable which is currently available within the global scope of the script. The keys of this array are the names of the global variables.
$_SERVER This is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server. There is no guarantee that every web server will provide any of these. See next section for a complete list of all the SERVER variables.
$_GET An associative array of variables passed to the current script via the HTTP GET method.
$_POST An associative array of variables passed to the current script via the HTTP POST method.
$_FILES An associative array of items uploaded to the current script via the HTTP POST method.
$_REQUEST An associative array consisting of the contents of $_GET, $_POST, and $_COOKIE.
$_COOKIE An associative array of variables passed to the current script via HTTP cookies.
$_SESSION An associative array containing session variables available to the current script.
$_PHP_SELF A string containing PHP script file name in which it is called.
$php_errormsg $php_errormsg is a variable containing the text of the last error message generated by PHP.

Server variables: $_SERVER

$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server. There is no guarantee that every web server will provide any of these.
VariableDescription
$_SERVER['PHP_SELF'] The filename of the currently executing script, relative to the document root
$_SERVER['argv'] Array of arguments passed to the script. When the script is run on the command line, this gives C-style access to the command line parameters. When called via the GET method, this will contain the query string.
$_SERVER['argc'] Contains the number of command line parameters passed to the script if run on the command line.
$_SERVER['GATEWAY_INTERFACE'] What revision of the CGI specification the server is using; i.e. 'CGI/1.1'.
$_SERVER['SERVER_ADDR'] The IP address of the server under which the current script is executing.
$_SERVER['SERVER_NAME'] The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.
$_SERVER['SERVER_SOFTWARE'] Server identification string, given in the headers when responding to requests.
$_SERVER['SERVER_PROTOCOL'] Name and revision of the information protocol via which the page was requested; i.e. 'HTTP/1.0';
$_SERVER['REQUEST_METHOD'] Which request method was used to access the page; i.e. 'GET', 'HEAD', 'POST', 'PUT'.
$_SERVER['REQUEST_TIME'] The timestamp of the start of the request. Available since PHP 5.1.0.
$_SERVER['QUERY_STRING'] The query string, if any, via which the page was accessed.
$_SERVER['DOCUMENT_ROOT'] The document root directory under which the current script is executing, as defined in the server's configuration file.
$_SERVER['HTTP_ACCEPT'] Contents of the Accept: header from the current request, if there is one.
$_SERVER['HTTP_ACCEPT_CHARSET'] Contents of the Accept-Charset: header from the current request, if there is one. Example: 'iso-8859-1,*,utf-8'.
$_SERVER['HTTP_ACCEPT_ENCODING'] Contents of the Accept-Encoding: header from the current request, if there is one. Example: 'gzip'.
$_SERVER['HTTP_ACCEPT_LANGUAGE'] Contents of the Accept-Language: header from the current request, if there is one. Example: 'en'.
$_SERVER['HTTP_CONNECTION'] Contents of the Connection: header from the current request, if there is one. Example: 'Keep-Alive'.
$_SERVER['HTTP_HOST'] Contents of the Host: header from the current request, if there is one.
$_SERVER['HTTP_REFERER'] The address of the page (if any) which referred the user agent to the current page.
$_SERVER['HTTP_USER_AGENT'] This is a string denoting the user agent being which is accessing the page. A typical example is: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586).
$_SERVER['HTTPS'] Set to a non-empty value if the script was queried through the HTTPS protocol.
$_SERVER['REMOTE_ADDR'] The IP address from which the user is viewing the current page.
$_SERVER['REMOTE_HOST'] The Host name from which the user is viewing the current page. The reverse dns lookup is based off the REMOTE_ADDR of the user.
$_SERVER['REMOTE_PORT'] The port being used on the user's machine to communicate with the web server.
$_SERVER['SCRIPT_FILENAME'] The absolute pathname of the currently executing script.
$_SERVER['SERVER_ADMIN'] The value given to the SERVER_ADMIN (for Apache) directive in the web server configuration file.
$_SERVER['SERVER_PORT'] The port on the server machine being used by the web server for communication. For default setups, this will be '80'.
$_SERVER['SERVER_SIGNATURE'] String containing the server version and virtual host name which are added to server-generated pages, if enabled.
$_SERVER['PATH_TRANSLATED'] Filesystem based path to the current script.
$_SERVER['SCRIPT_NAME'] Contains the current script's path. This is useful for pages which need to point to themselves.
$_SERVER['REQUEST_URI'] The URI which was given in order to access this page; for instance, '/index.html'.
$_SERVER['PHP_AUTH_DIGEST'] When running under Apache as module doing Digest HTTP authentication this variable is set to the 'Authorization' header sent by the client.
$_SERVER['PHP_AUTH_USER'] When running under Apache or IIS (ISAPI on PHP 5) as module doing HTTP authentication this variable is set to the username provided by the user.
$_SERVER['PHP_AUTH_PW'] When running under Apache or IIS (ISAPI on PHP 5) as module doing HTTP authentication this variable is set to the password provided by the user.
$_SERVER['AUTH_TYPE'] When running under Apache as module doing HTTP authenticated this variable is set to the authentication type.