pass information from page to page-best seo

Adding information to the URL: You can add certain information to the
end of the URL of the new page, and PHP puts the information into builtin
arrays that you can use in the new page. This method is most appropriate
when you need to pass only a small amount of information.

1. Storing information via cookies: You can store cookies — small
amounts of information containing variable=value pairs — on the
user’s computer. After the cookie is stored, you can get it from any
Web page. However, users can refuse to accept cookies. Therefore, this
method works only in environments where you know for sure that the
user has cookies turned on.

2. Passing information using HTML forms: You can pass information to a
specific program by using a form tag. When the user clicks the submit
button, the information in the form is sent to the next program. This
method is useful when you need to collect information from users.

3. Using PHP session functions: Beginning with PHP 4, PHP functions
are available that set up a user session and store session information
on the server; this information can be accessed from any Web page.
This method is useful when you expect users to view many pages in a
session.

Add information to the URL

A simple method  to move information from one page to the next is to add the
information to the URL. Put the information in the following format:
variable=value
The variable is a variable name, but do not use a dollar sign ($) in
it. The value is the value to be stored in the variable. You can add the
variable=value pair anywhere that you use a URL. You signal the start of
the information with a question mark (?). The following statements are all
valid ways of passing information in the URL:
<form action=”page.php?price=4545” method=”POST”>
<a href=”page.php?price=654”>page</a>
header(“Location: page.php?tips=SEO”);









Drupal-Optimizations

While most optimizations to Drupal are done within other layers of the software stack, there are a few
buttons and levers within Drupal itself that yield significant performance gains.

Page Caching
Sometimes it’s the easy things that are overlooked, which is why they’re worth mentioning again. Drupal
has a built-in way to reduce the load on the database by storing and sending compressed cached pages
requested by anonymous users. By enabling the cache, you are effectively reducing pages to a single
database query rather than the many queries that might have been executed otherwise. Drupal caching
is disabled by default and can be configured at Configuration -> Performance.

Bandwidth Optimization
There is another performance optimization on the Configuration -> Performance page to reduce the
number of requests made to the server. By enabling the “Aggregate and compress CSS files into one”
feature, Drupal takes the CSS files created by modules, compresses them, and rolls them into a single file
inside a css directory in your “File system path.” The “Aggregate JavaScript files into one file” feature
concatenates multiple JavaScript files into one and places that file inside a js directory in your “File
system path.” This reduces the number of HTTP requests per page and the overall size of the
downloaded page.

Dedicated Servers vs. Virtual Servers

Dedicated physical servers are going to outperform virtual servers when it comes to network I/O, disk
I/O, and memory I/O, even in situations where the virtual server supposedly has been allocated more
resources (CPU, disk, and memory) than a dedicated server of similar specs. An important factor to
consider is that in a virtualized server environment, the CPU, disk I/O, memory I/O, and network I/O
have added I/O routing layers between the server OS and the actual hardware. And, therefore, all I/O
operations are subject to task scheduling whims of the host hypervisor as well as the demands of
neighboring virtual machines on the same physical host.

As a real example, a virtual server hosting a database server may have twice as much CPU power as a
cheaper physical dedicated server; however, the virtual server may also have an added 1ms network
latency (a very real example from an actual Xen virtualized environment), even between neighboring
virtual machines. Now, 1ms network latency doesn’t seem like enough latency to care about, until you
consider that a logged-in Drupal page request may involve hundreds of serialized MySQL queries; thus
the total network latency overhead can amount to a full second of your page load time. An added latency
of just one second per page request may also seem affordable; however, also consider the rate of
incoming page requests and whether this one-second delay will cause PHP processes to pile up in heavy
traffic, thus driving up your server load. Adding more and bigger virtual servers to your stack does not
make this I/O latency factor disappear either. The same can be said for disk I/O: virtual disks will always
be slower than physical local physical disks, no matter how much CPU and memory the virtual server
has been allocated.

Apache Pool Size

When using Apache prefork, you want to size your Apache child process pool to avoid process pool
churning. In other words, when the Apache server starts, you want to immediately prefork a large pool of
Apache processes (as many as your web server memory can support) and have that entire pool of child
processes present and waiting for requests, even if they are idle most of the time, rather than constantly
incurring the performance overhead of killing and re-spawning Apache child processes in response to
the traffic level of the moment.
Here are example Apache prefork settings for a Drupal web server running mod_php.
StartServers 40
MinSpareServers 40
MaxSpareServers 40
MaxClients 80
MaxRequestsPerChild 20000
This is telling Apache to start 40 child processes immediately, and always leave it at 40 processes
even if traffic is low, but if traffic is really heavy, then burst up to 80 child processes. (You can raise the 40
and 80 limits according to your own server dimensions.)
You may look at this and ask, “Well, isn’t that a waste of memory to have big fat idle Apache
processes hanging about?” But remember this: the goal is to have fast page delivery, and there is no prize
for having a lot of free memory.

Moving Directives from .htaccess to httpd.conf

Drupal ships with two .htaccess files: one is at the Drupal root, and the other is automatically generated
after you create your directory to store uploaded files and visit Configuration -> File system to tell Drupal
where the directory is. Any .htaccess files are searched for, read, and parsed on every request. In
contrast, httpd.conf is read only when Apache is started. Apache directives can live in either file. If you
have control of your own server, you should move the contents of the .htaccess files to the main Apache
configuration file (httpd.conf) and disable .htaccess lookups within your web server root by setting
AllowOverride to None:

<Directory />
AllowOverride None
...
</Directory>
This prevents Apache from traversing up the directory tree of every request looking for the
.htaccess file to execute. Apache will then have to do less work for each request, giving it more time to
serve more requests.

Defining a Block

Blocks are defined within modules by using hook_block_info(), and a module can implement multiple
blocks within this single hook. Once a block is defined, it will be shown on the block administration
page. Additionally, a site administrator can manually create custom blocks through the web interface. In
this section, we’ll mostly focus on programmatically creating blocks.

The following properties are defined within the columns of the block table:
bid: This is the unique ID of each block.

module: This column contains the name of the module that defined the block.
The user login block was created by the user module, and so on. Custom blocks
created by the administrator at Structure -> Blocks -> Add Blocks are
considered to have been created by the block module.

delta: Because modules can define multiple blocks within hook_block_info(),
the delta column stores a key for each block that’s unique only for each
implementation of hook_block_info(), and not for all blocks across the board. A
delta should be a string.

theme: Blocks can be defined for multiple themes. Drupal therefore needs to
store the name of the theme for which the block is enabled. Every theme for
which the block is enabled will have its own row in the database. Configuration
options are not shared across themes.

status: This tracks whether the block is enabled. A value of 1 means that it’s
enabled, while 0 means it’s disabled. When a block doesn’t have a region
associated with it, Drupal sets the status flag to 0.

weight: The weight of the block determines its position relative to other blocks
within a region.

region: This is the name of the region in which the block will appear, for
example, footer.

XML-RPC

A remote procedure call is when one program asks another program to execute a function. XML-RPC is a
standard for remote procedure calls where the call is encoded with XML and sent over HTTP. The XMLRPC
protocol was created by Dave Winer of UserLand Software in collaboration with Microsoft (see
www.xmlrpc.com/spec). It’s specifically targeted at distributed web-based systems talking to each other,
as when one Drupal site asks another Drupal site for some information.
There are two players when XML-RPC happens. One is the site from which the request originates,
known as the client. The site that receives the request is the server.

If your site will be acting only as a server, there’s nothing to worry about because incoming XML-RPC
requests use the standard web port (usually port 80). The file xmlrpc.php in your Drupal installation
contains the code that’s run for an incoming XML-RPC request. It’s known as the XML-RPC endpoint.


XML-RPC Clients
The client is the computer that will be sending the request. It sends a standard HTTP POST request to
the server. The body of this request is composed of XML and contains a single tag named <methodCall>.
Two tags, <methodName> and <params>, are nested inside the <methodCall> tag.

Drupal Bootstrap Process

Drupal Bootstrap Process?
Drupal bootstraps itself on every request by going through a series of bootstrap phases. These phases are
defined in bootstrap.inc and proceed.

Configuration Sets global variables used throughout the bootstrap process.
Database Initializes the database system and registers autoload functions.
Variables Loads system variables and all enabled bootstrap modules.
Session Initializes session handling.
Page Header Invokes hook_boot(), initializes the locking system, and sends the default HTTP
headers.
Language Initializes all the defined language types.
Full The final phase: Drupal is fully loaded by now. This phase validates and fixes the input
data.
Processing a Request
The callback function does whatever work is required to process and accumulate data needed to fulfill
the request. For example, if a request for content such as http://example.com/q=node/3 is received, the
URL is mapped to the function node_page_view() in node.module. Further processing will retrieve the
data for that node from the database and put it into a data structure. Then, it’s time for theming.

Requiring Cookies

If the browser doesn’t accept cookies, a session cannot be established because the PHP directive
sessions_use_only_cookies has been set to 1 and the alternative (passing the PHPSESSID in the query
string of the URL) has been disabled by setting sessions.use_trans_sid to 0. This is a best practice, as
recommended by Zend see http://php.net/session.configuration:

URL-based session management has additional security risks compared to cookiebased
session management. Users may send a URL that contains an active session ID
to their friends by e-mail or users may save a URL that contains a session ID to their
bookmarks and access your site with the same session ID always, for example.


When PHPSESSID appears in the query string of a site, it’s typically a sign that the hosting provider
has locked down PHP and doesn’t allow the ini_set() function to set PHP directives at runtime.
Alternatives are to move the settings into the .htaccess file (if the host is running PHP as an Apache
module) or into a local php.ini file (if the host is running PHP as a CGI executable).

IT company in kolkata

Matrix Technologies Pvt. Ltd.8/1C, Chowringhee Lane, Room No. 2E, 2nd flKolkata7000162252 8/29
Media Software61A, S.N.Roy RdKolkata70003424479580
Metalogic Systems Pvt. LtdPlot-J1/1, Block-EP and GP, Sector-V, Salt LakeKolkata7000912452 61/94
MicroPro75C Park StKolkata70001622468009
Millennium Cyberworks13A, Govt. Place(east)Kolkata70006922481910
Millennium Infosystems86, Ballygunge PlaceKolkata70001924402194 24402
MindEdge Solutions#10, 7th fl, 8 Camac StKolkata700017222821061
Mindteck (India) Ltd.SDF Bldg, Module No.529-530, 4th fl, Sec V, Salt LakeKolkata7000912468 3/13
Mohata Softwares Pvt LtdChitrakoot Building, 6th floorRoom No -61, 230 A AJC Bose RoadKolkata70002022834351
Navneet Information Technology Pvt. Ltd.65 and 66, Chitrakoot, A.J.C. Bose RdKolkata7000202400680
Net Always152, S.N. Roy RdKolkata7000384588136
Netcom Solutions29A, Southend ParkKolkata7000294645872
NetguruIndiaE2,E3,E4, Block GP, Sec-V, Salt LakeKolkata7000913573575
Netwatch Online Pvt. Ltd.DL 141 and 143, Sector-II, Salt Lake CityKolkata70009123370275
NGS Solutions Pvt. Ltd.29B, Lake Temple RoadKolkata7000292463 91/92
NIIT Technologies Ltd.6B, Pretoria StreetKolkata7000712282 1708/1533
NIIT Technologies Ltd. (UNIT-II)EM-4/1, Sector-V, Salt LakeKolkata7000913212 5/9
Octagon Software Technologies Pvt. Ltd.1st Floor, South Wing, Plot-X1-16, Sector-V,Block-EP and GP, Salt LakeKolkata700091235749 1/2
Ontrack Systems Ltd.276B, Lake GardensKolkata700045241784 34/35
Optimal Computing Pvt. Ltd.SDF Bldg, 3rd Floor, Module-412, Sector - V, Salt LakeKolkata7000912357 4/7
Paritosh Software and Information Tech. P. Ltd.SDF Bldg, Module 128, Block-GP, Sector-V, Salt LakeKolkata70009123575777
PCL ( Pertech Computers Ltd.)FD 254, Sec-III, Salt LakeKolkata7000913214215
Pecon Software Ltd.835, P Block, New AlipurKolkata70005322100195
Peerless Technologies Ltd.SDF Bldg, Salt Lake Electronic ComplexKolkata7000912473773
Pinnacle Infotech SolutionsS.S.B. Sarani, Bidhannagar, DurgapurKolkata
343 2533250/51
Praxis Softek Solutions Pvt. Ltd.SDF Building, 5th fl, Module 616, Block-GP, Sector-V, Salt LakeKolkata70009123577473
Price Waterhouse Associates (P) LtdY14, Block EP, Sector V, Salt LakeKolkata7000913573384-90
Price Waterhouse Associates (P) LtdSukhSagar, 2/5 Sarat Bose RdKolkata7000204748523
Quint Software SolutionsEC-5, SEC-I, Salt LakeKolkata70006423581574
R J Softwares1, Stephen House, 3rd flKolkata700001
R S Software India LimitedA-2, 234/3A, A J C Bose RoadKolkata70002022475746
RDG Systems27/A, Asutosh Chowdhury AvenueKolkata70001924760478
Rebaca Technologies Pvt. Ltd.J-5, 3rd Floor, Block-EP and GP, Sector-V, Salt LakeKolkata70001923577177
Relate Software Pvt. Ltd.387, New Alipur, Block-GKolkata700053245827 27-30
Research Engineers Pvt. Ltd.E2-4, Block-GP, Sector-VSalt Lake CityKolkata7000912357 3575/3662
Soffront Software Pvt. Ltd.STP-II, 1st Floor (East) Plot -53, Block-DN, Sector-V, Salt LakeKolkata70009123673480
Spear NetworksHB 290, Sec-III, Salt LakeKolkata700091
Standard Sowfware Pvt. Ltd.692B, block-O, New AliporeKolkata70005324008804
Stellar Corporation296-1, Bangur AveKolkata70005525745034
Stesalit Infotech Ltd.25/1, Rustamji StreetKolkata7000192246 7984-87
Stride Technology Pvt. Ltd.4th Floor, SDF Bldg, Module No. 533, Salt LakeKolkata70009130932195
Sumishi Webcom2A, 9E 5th Road, SantoshpurKolkata70007524166023
Sybernet Online138, B.R.B. Basu Road, 2nd FlKolkata70000122434979
Synapse Communications113 Southern AvenueKolkata700029
Sys-Con Engineering53-B, Mirza Ghalib Street 2nd FloorKolkata70001722297214 / 309
Sysmetric (P) Ltd.387, New Alipur, Block-GKolkata7000532407 1212/13/
Atlas Software Technologies (India) Pvt. Ltd.A1-4, Block-EP & GP, Sector-V, Salt LakeKolkata7000912357-4324/25
Avant Garde Software Pvt. Ltd.DA-14, Sector-I, Salt Lake CityKolkata7000642334 5689/5527
Avisere Technology (P) Ltd 1st fl, Kripa Bhawan, Plot-Y20, Block-EP, Sec V, Salt LakeKolkata70009130956688
Avow Labs2, Lalbazar Street, #402Kolkata70000122317612
Axiom Technologies Private Limited 34, Dr Sarat Banerjee Road, 1st FloorKolkata7000292463-9725 / 2474-7501
Azure Software Pvt. Ltd.IA-9, Sector-III, Salt Lake CityKolkata7000912335-8895/96
Bayrise Technologies Pvt. Ltd.3rd fl, DC-27/26, Sector I, Salt LakeKolkata70006423589760
BNK E. Solutions Pvt. Ltd.Infinity, 4th fl,Plot A3, Block GP, Sector V, Salt LakeKolkata7000912357 5194/95
Brainware Consultancy Pvt. Ltd.17B Lake PlaceKolkata70002924663531
BRI Technologies Pvt. Ltd.Module #233, SDF Bldg, 1st fl, Block GP, Sector V, Salt LakeKolkata70009123577219
Brick & Click Technologies Pvt. Ltd.SDF Bldg, 5th fl, #634 & 635, Block GP, Sector V, Salt LakeKolkata70009130944793 / 23572427
CA-TCG Software Pvt. Ltd.BIPPL, Building A, 2nd Floor, Block-EP andGP, Sector-V, Salt LakeKolkata7000912357 5660-65
Cadworld Infosystems Pvt. Ltd.770 Rajdanga Main Road, Rashbehari ConnectorKolkata7001072441-3820
Calkol Software Dev Pvt LtdInfinity Towers I, Block GP, Sector -V, Salt LakeKolkata7000912357 2466/67/6
CapgeminiAsyst Park, GN 37/1, Sector 5, Salt Lake Electronic CityKolkata7000916610 2400
Chabria Infotech209, A.J.C. Bose RoadKolkata7000172280 2304,3375
Cirrusweb Infotech Limited7A Hospital Street, 2nd FloorKolkata70007222376528
CMC Ltd.28, Camac StKolkata7000162373 6151
Cognizant Technology Solutions (CTS)Plot GN-34/3,Sector-V,Saltlake Electronic CompleKolkata70009123573211 / 23573213
Computer Exchange24 Park StKolkata7000162249 7405