Drupal 6 Installation on windows

DRUPAL INSTALLATION

1.UNZIP  Drupal-6.15 and rename folder drupal-6.1.5 to drupal and copy that in your server webroot
I am using XAMPP , so I kept this “drupal”  folder in “htdocs” folder
Start your Xampp server.
On browser , type:-
http://localhost/drupal
it will show this page as in screenshot
2.Follow drupal instructions
Choose language to English

1

3. After that you will get this screen

2

3

4.You will get screen like below and enter your DB name and all , after that click on ” SAVE AND CONTIUNE “ button

4

5. After that you will see screen as shown below .
This prompt error message because we don’t have “drupal_team”  database in MYSQL DB

5

 First create “drupal_team” db in MYSQL database
As  shown in screenshot

6

After creating DB name in MYSQL

6.Goto drupal installation browser
 
NOTE:- if u want then put prefix for your tables in “drupal_team” database. Its optional
See screenshot:-

7

7. after that we will see screen as shown and fill appropriate data .

8

9
10

8. AT last you will see screen as shown below , SMTP error will come but its just for mailing functionality which you can resolve in php.ini file.

11

Beautiful paintings

JQuery Table Sorter Plugin

TableSorter plugin is used to do single column sorting as well as multiple column sorting without refreshing a whole page .

Here is a small Example to show  how Tablesorter plugin works.

STEP 1:-
download jquery.js and jquery-tablesorter.js file

STEP 2:- Embedd that js file into your source code or in your webpage.

Between  <HEAD></HEAD> tag , copy these lines

<script type=”text/javascript” src=”/path/to/jquery.js”></script>
<script type=”text/javascript” src=”/path/to/jquery.tablesorter.js”></script>

NOTE:- provide jquery.js and jquery-tablesorter.js path in src attribute

STEP 3:- Between  <BODY></BODY> tag, copy these lines and paste


<h1><u>Multiple Column Sorting  Example</u></h1>

<table  cellpadding=”3″ cellspacing=”1″  width=”100%”  id=”myTable”>
<thead >
<tr><th  width=”60″ >Name</th>
<th width=”60″>Task</th>
<th  width=”60″>Cell No.</th>
<th  width=”60″>Start Date</th>
<th  width=”60″>End Date</th>
<th  width=”60″>Completed By</th>
</tr>
</thead>
<tbody>
<tr><td>
Anand
</td>
<td>
PHP
</td>
<td>
111-222-3333
</td>
<td>
11/16/2009
</td>
<td>
11/23/2009</td>
<td>
ak60991
</td>
</tr>
<tr>
<td>
Vishal
</td>
<td>
Coldfusion
</td>
<td>
111-222-3334
</td>
<td>
11/16/2009
</td>
<td>
11/23/2009</td>
<td>
vu60998
</td>

</tr>
<tr>
<td>
Anand
</td>
<td>
Coldfusion
</td>
<td>
111-222-3334
</td>
<td>
11/16/2009
</td>
<td>
11/23/2009</td>
<td>
ak60991
</td>

</tr>
<tr>
<td>
Himadri
</td>
<td>
Coldfusion
</td>
<td>
111-222-3334
</td>
<td>
11/16/2009
</td>
<td>
11/23/2009</td>
<td>
hr60001
</td>

</tr>

<tr>
<td>
Gaurav
</td>
<td>
Coldfusion
</td>
<td>
111-222-3336
</td>
<td>
11/16/2009
</td>
<td>
11/23/2009</td>
<td>
gt56001
</td>
</tr>
<tr>
<td>
Himadri
</td>
<td>
Oracle
</td>
<td>
111-222-3336
</td>
<td>
11/16/2009
</td>
<td>
11/23/2009</td>
<td>
gt56001
</td>
</tr>
<tr>
<td>
Vishal
</td>
<td>
Oracle
</td>
<td>
111-222-3336
</td>
<td>
11/16/2009
</td>
<td>
11/23/2009</td>
<td>
vu60998
</td>
</tr>

</tbody>
</table>
<p><span><font color=”#990000″ size=”+1″><b>NOTE:</b></font></span> hold  shift key and click on  multiple headers/columns to do multiple column sorting!</p>


STEP 4:-Between <HEAD></HEAD> tag , copy and paste these lines

<script type=”text/javascript”>
<!–jQuery.noConflict();–>
var $j = jQuery.noConflict();

$j (document).ready(function()     {
//$j (“#myTable”).tablesorter({widgets: [‘zebra’]});

$j (“#myTable”).tablesorter();
}
);
</script>


Description:

this particular script will apply tablesorter() function of JQuery to table which has id ‘myTable’


STEP 5:- Add CSS style sheet into your code .

Copy and paste these lines between <HEAD></HEAD> tag


<style type=”text/css”>
.sort{font-size:9px;}

table.tablesorter .header {
background-image: url(“/path/to/bg.png”);
background-repeat: no-repeat;
padding-left: 30px;
padding-top: 8px;
width:auto;
}

table.tablesorter th.no_sort {
background-image: url(“/path/to/header.PNG”);
}
table.tablesorter .headerSortUp {
background-image: url(“/path/to/asc.png”);
background-repeat: no-repeat;
}
table.tablesorter .headerSortDown {
background-image: url(“/path/to/desc.png”);
background-repeat: no-repeat;
}
table.tablesorter .even {
background-color: #9999CC;
}
table.tablesorter .odd {
background-color: #FFFFFF;
}
</style>


Save your code and run it . Congrats you have implemented sorting on your table .

Screenshot is added


FEW Tips: open JQuery-tablesorter.js file,

you will see  some default values , you can change these values based on your requirements.i have commented on some parameters in below code .

this.defaults = {
cssHeader: “header”,// css header class
cssAsc: “headerSortUp”, // css headerSortUp class
cssDesc: “headerSortDown”, // css headerSortDown class
sortInitialOrder: “asc”, // you can change it based on how you want initial sorting
sortMultiSortKey: “shiftKey”,// here you can use CTRL key also
sortForce: null,
sortAppend: null,
textExtraction: “simple”,
parsers: {},
widgets: [‘zebra’],
widgetZebra: {css: [“even”,”odd”]},// css even ,odd class
// below commented code will disable sorting on first and second column
//headers: {0: { sorter: false}, 1: {sorter: false}},
headers: {},
widthFixed: false,
cancelSelection: true,
sortList: [],
headerList: [],
dateFormat: “us”,
decimal: ‘.’,
debug: false
};


LIGHTBOX Tutorial

Lightbox is a useful JavaScript, which allows you to watch photos in a semi-transparent overlay to your site. When you click on a link, the picture is shown above the content of your page, which frees you of limitations like columns.

This tutorial is about setting up Lightbox to work on your page.

STEP 1: download lightbox.js , lightbox.css ,prototype.js,scriptaculous.js,effects.js and builder.js

 

STEP 2: Create a folder “launchpad” and “js” , “css” and “image” sub folder inside “launchpad” folder.

NOTE:- you can create a folder structure according to your wish also .

In “js” folder , keep all js files like:

lightbox.js ,prototype.js,scriptaculous.js,effects.js and builder.js

In “css” folder . keep lightbox.css file.

In “images” folder , keep all your images that you want to be displayed as photo gallery.

STEP 3: keep “lauchpad” folder inside C:\ drive

NOTE:- you can put this folder anywhere according to your wish but then you have to take care of Path of these folder.

STEP 4: Create lightbox.html page (you can rename your filename also.)

source code of lightbox.html :-

 

<html>
<head>
<title> Lightbox Example</title>
<link rel=”stylesheet” href=”c:/lightbox/css/lightbox.css” type=”text/css” media=”screen” />

// Lightbox.css :- for lightbox layout designing
<br/>
<script src=”c:/lightbox/js/prototype.js” type=”text/javascript”></script>
//prototype.js :-This will call to a needed Javascript file, ‘prototype.’ Without prototype, Lightbox WILL NOT function.
<br/>

<script src=”c:/lightbox/js/scriptaculous.js?load=effects,builder” type=”text/javascript”></script>

//scriptaculous.js :- Above statement  Not only  it calls to scriptaculous, but it will also call to effects.js and builder.js. Scriptaculous has a feature that will load the needed JS files with itself, hence the ?load after scriptaculous.js

<br/>

<script src=”c:/lightbox/js/lightbox.js” type=”text/javascript”></script>
//Lightbox.js

</head>
<body>
<h1>Light Box Example</h1>
<br/><br/>
<a href=”c:/lightbox/images/a.jpg” rel=”lightbox” title=”Gallery”>What is it?</a><br/><br/>

// The beauty of Lightbox is that you only need to call to it in link attributes, and not image attributes. <br/>
// rel=”lightbox” tells the webserver that the relation of this link is Lightbox, so, it will link Lightbox.js and all other JS files to the link. <br/>
// Title is optional, it will be displayed below the image<br/>
// Now, we’ll link some images together, commented code will be after so you understand.<br/>

<br/><br/>

<a href=”c:/lightbox/images/a.jpg” rel=”lightbox[outdoors]”>Gallery 1</a><br/>
<a href=”c:/lightbox/images/b.jpg” rel=”lightbox[outdoors]”>Gallery 2</a><br/>
<a href=”c:/lightbox/images/c.jpg” rel=”lightbox[outdoors]”>Gallery 3</a><br/>
<a href=”c:/lightbox/images/d.jpg” rel=”lightbox[outdoors]”>Gallery 4</a><br/>
<a href=”c:/lightbox/images/e.jpg” rel=”lightbox[outdoors]”>Gallery 5</a><br/>
<br/><br/>
//Everything is the same as above, except that we’ve added within brackets the word ‘outdoors.’ Outdoors links those five images together so that we will get ‘Next’ and/or ‘Previous’ linkings within Lightbox.
</body>
</html>

copy and paste this code into lightbox.html file

NOTE: –

<a href=”c:/lightbox/images/a.jpg” rel=”lightbox[outdoors]”>Gallery 1</a><br/>
<a href=”c:/lightbox/images/b.jpg” rel=”lightbox[outdoors]”>Gallery 2</a><br/>
<a href=”c:/lightbox/images/c.jpg” rel=”lightbox[outdoors]”>Gallery 3</a><br/>
<a href=”c:/lightbox/images/d.jpg” rel=”lightbox[outdoors]”>Gallery 4</a><br/>
<a href=”c:/lightbox/images/e.jpg” rel=”lightbox[outdoors]”>Gallery 5</a><br/>

In the above code ,

you   can rename your image name as well as you can use “n”  number of images that has to be displayed.

suppose , i can add other statement in above code,like this

<a href=”c:/lightbox/images/hello.jpg” rel=”lightbox[outdoors]”>Gallery 6</a>

STEP 5: In lightbox.css,

change  path of images for these attributes

fileLoadingImage:        ‘c:/lightbox/images/loading.gif’,     
 fileBottomNavCloseImage: ‘c:/lightbox/images/closelabel.gif’,

STEP 6: run lightbox.html page and click on  any of links to see lightbox effects .

 

PHP Magic Methods

MAGIC METHODS

1.Why magic methods ?

Ans:

In PHP,  a variable can take any form depending on the data passed to it. Also PHP automatically creates variable and assigns values to it even if the variables are not defined. But in Object Oriented Programming all the data members/methods needs to be defined. To solve some of these problems in OOPS environment magic methods have been introduced in PHP5.

  1. Magic methods are member function that is available for all instance of class.
  2. Magic method stars with __(double underscore), like: __get () ,__set()
  3. Magic methods are always declared as PUBLIC.

LIST of MAGIC METHODS used in PHP 5 :

__get() , __set() , __autoload , __sleep() , __wakeup() , __construct() , __destruct() , __isset() , __unset() , __clone , __call ,__toString()

1. __construct() :- This methods gets called whenever an object of a class is instantiated.

2. __destruct() :–  This methods gets called whenever an object of a class is destroyed or object goes out of scope.

3. __set() :–  This methods get automatically called whenever you assigns data to a undefined attributes of an class in PHP 5. With this method the programmer can keep track on the variables which are not defined inside the class.

    Syntax:

    < ?

    function __set($data,$value){

    //$data – holds the name of the undefined attributes

    //$value – holds the value assigned to the undefined attributes.

    }

    ?>

    Example:

    < ?
    class magicmethod{
                   function __set($data,$value)
                   {
                                   echo "Error assigning values to undefined attributes";
                                   echo "attributes Called:".$data;
                                   echo "Value assigned to attributes:".$value;
                   } 
    }
    $a = new magicmethod();
    $a->setData = 20;
    ?>
    In Above example : 

      Output:
      Error assigning values to undefined attributes
      attributes Called:setData
      Value assigned to attributes:20

      Explain:

      In the magicmethod class setData is not defined so the php compiler excutes __set() magic method and displays error message.

      And  assigned value 20 to an attribute setData of magicmethod class.

      5. __get() :- This methods get automatically called when you try to retrieves the data of undefined attributes of an class in PHP 5.

        Syntax:

        function __get($data)
        {
             //$data holds the name of the undefined attributes getting called.
        }
          
        Example:
        < ?
        class magicmethod
        {
           function __get($data)
           {
               echo "Error accessing undefined attributes";
               echo "attributes Called:".$data;
           }
        }
         
        $a = new magicmethod();
        echo $a->setData;
         
        ?>
         
        Output:
        Error accessing undefined attributes
        attributes Called:setData
         
        Explain: 
        a.echo an attribute setData of magicmethod class.
        b.But in the magicmethod class setData is not defined so the php compiler excutes __get() magic method and displays error message 
        
        6.__cal() :- The __call Magic method in PHP5 get called when accessing an undeclared or undefined methods of an class. With this magic method the programmer can keep track on the undeclared method which are not defined inside the class.

          Syntax:

          < ?
          function __call($data,$argument)
          {
                         //$data holds the name of the undefined method getting called.
                  //$argument holds the argument passed to the method.
          }
          ?>

          Example:

          < ?
          class magicmethod
          {
           
                         function __call($data,$argument)
                         {
                                         echo "Error accessing undefined Method";
                                         echo "Method Called: ".$data;
                                         echo "Argument passed to the Method: ".$argument;
                         }
           
          }
           
          $a = new magicmethod();
          echo $a->setData();  //Calling setData method
           
          ?>

          Output:
          Error accessing undefined Method
          Method Called: setData
          Argument passed to the Method: Array (Array of the Argument Passed)

          Explain:

          1.trying to call setData method of magicmethod class.

          2.Now in the magicmethod class setData is not defined so the php compiler excutes __call() magic method and displays error message.


          6. __sleep() :-  This methods gets called when you serialize the object in PHP 5. Serializing is required to pass complex data across the network or PHP pages. It is also used to store data(files, database, cookies etc).

            Syntax:

            < ?
            function __sleep()
            {
                           ...
                           return serialised data;
            }
            ?>

            Example:

            < ?
            class magicmethod
            {
                           function __sleep()
                           {
                                           echo "Performing Clean-Up Operation Before Serializing Data ";
                                           return array("Serialized Data","1","2","3");
                           }
            }
            $a = new magicmethod();
            $serializedata = serialize($a);
            echo $serializedata;
            ?>

            Output:
            Performing Clean-Up Operation Before Serializing Data
            O:11:”magicmethod”:4:{s:15:”Serialized Data”;N;s:1:”1″;N;s:1:”2″;N;s:1:”3″;N;}

            Explain:

            a.trying to serialize the object of magicmethod class.

            b.Now the PHP Compiler calls the __sleep() Magic method which return an array having the serialized values

            7.__wakeup() :- This methods gets called when the object is about to be unserialized in PHP 5. This method allows us to restore the serialized data to its normal form.

            Syntax:

            function __wakeup()
            {
                           ...
            } 
            

            Example:

            < ?
            class magicmethod
            {
                           private $setName;
                           function __sleep()
                           {
                                           echo "Performing Clean-Up Operation Before Serializing Data ";
                                           $this->setName = "Hello World!!!";
                                           return array(setName);
                           }
             
                           function __wakeup()
                           {
                                           echo "Performing Clean-Up Operation Before Unserializing Data ";
                                           echo $this->setName;
                           }
            }
            $a = new magicmethod();
            $serializedata = serialize($a);
            $serializedata1 = unserialize($serializedata);
            ?>

            Output:
            Performing Clean-Up Operation Before Serializing Data
            Performing Clean-Up Operation Before Unserializing Data
            Hello World!!!

            Explain:

            a.trying to serialize the object of magicmethod class

            b.Now the PHP Compiler calls the __sleep method which return an array having the serialized values

            c. After serialize data, i am calling the unserialize function; now the PHP compiler will call the __wakeup method which contains the original data that was serialized .

            8. __autoload():-This methods get automatically called whenever you try to load an object of class which resides in separate file and you have not included those files using include,require and include_once. To use this method it is mandatory to the PHP filename as that of the class name because this methods accepts the class name as the argument.

              Syntax:

              < ?
                 function __autoload($classname)
                 {
                    require($classname.".php");
                 }
              //$classname is the name of the Class.
              ?>

              Example:

              //magicmethod1.php

              < ?
                  class magicmethod1
                  {
                      function __construct()
                      {
                          echo "MagicMethod1 Class Called";
                      }
                  }
                ?>
              <?php
                  function __autoload($classname)
                  {
                      include $classname.".php"; //Here $classname=magicmethod1
                  }
               
                  $a = new magicmethod1();
              ?>

              Output: MagicMethod1 Class Called

              Explain:

              trying to create an object of magicmethod1 class, but i have not included the magicmethod1.php so PHP compiler calls the __autoload() method which include that magicmethod1.php file.

              9.__clone() :- PHP5 has introduced clone method which creates an duplicate copy of the object. __clone methods automatically get called whenever you try to call clone methods in PHP 5. This operator does not creates a reference copy.

                In PHP 5 when you assign one object to another object creates a reference copy and does not create duplicate copy. This would create a big mess as all the object will share the same memory defined for the object. To counter this PHP 5 has introduced clone method

                Example:

                //without cloning

                < ?
                class Animal
                {
                   public $name;
                   public $legs;
                 
                   function setName($name)
                   {
                               $this->name = $name;
                   }
                 
                   function setLegs($legs)
                   {
                               $this->legs = $legs;
                   }
                }
                 
                $tiger = new Animal();
                $tiger->name = "Tiger";
                $tiger->legs = 4;
                 
                $kangaroo = $tiger;
                $kangaroo->name = "Kangaroo";
                $kangaroo->legs = 2;
                 
                echo $tiger->name."---".$tiger->legs;
                echo "<br />".$kangaroo->name."---".$kangaroo->legs;
                ?>

                Output:
                Kangaroo—2
                Kangaroo—2

                Explanation:

                • Here i have created an $tiger object of Animal class
                • Created another variable $kangaroo and assigned $tiger to $kangaroo
                • After echo it print the details entered last because both the variables are referring to the same memory location

                Example:

                //with __Clone

                < ?
                class Animal
                {
                   public $name  ;
                   public $legs;
                 
                   function setName($name)
                   {
                               $this->name = $name;
                   }
                 
                   function setLegs($legs)
                   {
                               $this->legs = $legs;
                   }
                 
                   function __clone()
                   {
                               echo "<br />Object Cloning in Progress";
                   }
                }
                 
                $tiger = new Animal();
                $tiger->name = "Tiger";
                $tiger->legs = 4;
                 
                $kangaroo = clone $tiger;
                $kangaroo->name = "Kangaroo";
                $kangaroo->legs = 2;
                 
                echo "<br />".$tiger->name."---".$tiger->legs;
                echo "<br />".$kangaroo->name."---".$kangaroo->legs;
                ?>

                Output:
                Object Cloning in Progress
                Tiger—4
                Kangaroo—2

                Explanation:

                • Here i have created an $tiger object of Animal class
                • Created another variable $kangaroo having clone of $tiger. This calls the __clone magic method
                • After echo it print the details entered by individual object as both of them are referring to separate object and memory location

                The above technique of cloning discussed is called shallow copy. There are other techniques called Deep Copy wherein you create duplicate copy of objects referring to other objects etc.

                10. __toString() :- __toString method is called when PHP needs to convert class instances into strings, for example when echoing:

                <?php

                class SomeClass {
                public function __toString() {
                return ‘someclass’;
                }
                }

                $obj = new SomeClass();
                echo $obj;
                //will output ‘someclass’

                ?>

                11. __isset() :- This methods get automatically called whenever you try to check the existence of the undeclared attributes of the class using isset function of PHP.

                12. __unset() :- This methods get automatically called whenever you try to check the destroy or clear an undeclared attributes of the class using unset function of PHP

                ORM (Object Relational Mapping)

                ORM in  PHP

                Advantages:

                1. ORMs have their own APIs for building queries and so are less Vulnerable to SQL injection attacks.
                2. ORMs have tools that will inspect a schema and build up a set  of model classes that allow you to interact with object in db.
                3. Instead of Directly interacting with db , you’ll be interacting with an abstraction layer that provides insulation between code and database Implementation.
                4. It provides mapping between logical business model and physical storage model.
                5. Cache management recently used data are cached in memeory so that it will reducing load on DBs.
                6. Concurrency support: support for multiple user updating same data simultaneously.

                Disadvantages:

                1. If you have complex, hand tuned SQL
                2. If you have decided that your DB will have stored procedure as its interface.
                3. If you have a complex schema that can’t be replaced.
                4. If you have not dealing with object
                5. If you are using custom queries oftenly.
                6. Tight coupling:  This approach creates tight dependency between model objects and database schemas. Changing in DB Schema has rippling affects in objects model and mapping configuration & vice-versa.  

                PHP & ORACLE

                PHP &  ORACLE

                Introduction to ORACLE : –  Oracle DB is well known for scalability , reliability and features.It is a leading DB and is available on many platforms.

                Oracle Terminology:  

                1. 1.       Databases and Instances :-  Oracle databases store and retrieve data. Each database consists of one or more data files. An Oracle database server  consists of an Oracle database and an Oracle Instance. Whenever an Oracle database server is started , a shared memory region SGA(System Global Area) is allocated and Oracle background processes are started. Combination of background processes and SGA is called an Oracle Instance.   
                2. 2.       Tablespaces :-  Tablespaces are logical unit of data storage made up of one or more datafiles. 
                3. 3.       Schemas:- A Schema is a collection of database objects such as tables and indexes. Typically, a single DB contains multiple schemas. Multiple Application can use same DB without any conflicts by using   different schemas. Instead of using a CREATE DATABASE command for new application , use CREATE USER to create a new schema in the database. 

                PHP ORACLE EXTENSIONS

                PHP has several extensions that let application use Oracle DB. Database access  and abstract library in each extension of PHP   is fundamentally similar. The differences are in  support for advanced features and programming methodology.

                If you want to make full use of Oracle features and need high performance, PHP OCI8 extension  has to be used. PHP OCI8 is a main ORACLE Extension.

                If you want database independence , use PHP PDO(data object) or ADOdb extension for database abstraction.

                 

                PHP Oracle Extensions

                1.Oracle (Not recommended)

                2.OCI8

                3.PDO

                4.ODBC

                PHP Oracle extensions are written in C  and linked into PHP Binary.

                 

                 

                OCI8 Extension :- OCI8 Extension is recommended extension to use. It is used in PHP 3,4 and 5.

                Example:

                <?php

                $con=oci_connect(‘dbname’,’passwd’,’localhost/XE’);

                $s=oci_parse($con,’select * from User’);

                oci_execute($s);

                While($res=oci_fetch_array($s,OCI_ASSOC)){

                echo $res[‘name’];

                }

                ?>

                HOW TO GET OCI8 EXTENSION

                Bundle Containing OCI8 Location and Current Release
                1. PHP Source Code
                http://www.php.net/downloads.phpphp-5.2.7.tar.bz2
                1.  PECL Source Code
                http://pecl.php.net/package/oci8oci8-1.3.4.tgz
                1.  Zend Core for Oracle 2.5
                http://www.oracle.com/technology/tech/php/zendcore/ZendCoreForOracle-v2.5.0-Linux-x86.tar.gz

                ZendCoreforOracle-v.2.5.0-Windows-x86.exe

                   

                Oracle has cross-version compatibility, that means if PHP OCI8 is linked with Oracle10g  Client Libraries, then it can able to connect with Oracle database  8i,9i,10g,11g. If OCI8 is linked with oracle 11g client libraries then it can able to connect with Oracle9iR2 onwards  .

                Full OCI8 functionality may not be available unless Oracle client libraries and database servers are latest version.

                OCI8 and Oracle Compatibility Matrix

                Software Bundle PHP Version OCI8 VersionIncluded Oracle Client Libraries Usablewith OCI8
                PHP Release Source Code Current release is 5.2.7 OCI8 1.2.5 8i, 9i, 10g, 11g
                PECL OCI8 Source Code Builds with PHP 4.3.9onwards Latest release isOCI8 1.3.4 9iR2, 10g, 11g
                Zend Core for Oracle 2.5 Includes PHP 5.2.5 OCI8 1.2.3 Inbuilt Oracle Database 10g client
                       

                ORACLE DATABASE XE :-

                Oracle database XE (Oracle 10g ) is available on 32-bit Windows and Linux platform.Oracle DatabseXE is available on Oracle network http://otn.oracle.com/xe

                Oracle Database XE has a browser based management interface, Oracle Application Express.

                Installing Oracle Database XE on Windows

                REFER :- http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf

                REFERENCE :- http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf