note 91334 added to function.session-start
| From: | RPaseur at NationalPres dot org | Date: | Sat, 06 Jun 2009 15:26:54 +0000 |
| Subject: | note 91334 added to function.session-start | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-156416@lists.php.net to get a copy of this message | ||
<?php // RAY_session_cookie_domain.php
// DEMONSTRATE HOW TO START SESSIONS THAT WORK IN DIFFERENT SUBDOMAINS PHP 5.2+
error_reporting(E_ALL);
// MAKE THE SESSION COOKIE AVAILABLE TO ALL SUBDOMAINS
// MAKE A DOMAIN NAME THAT OMITS WWW OR OTHER SUBDOMAINS
// BREAK THE HOST NAME APART AT THE DOTS
$x = explode('.', strtolower($_SERVER["HTTP_HOST"]));
$y = count($x);
if ($y == 1) // POSSIBLY 'localhost'
{
$host = $x[0];
} else // SOMETHING LIKE 'www2.atf70.whitehouse.gov'?
{
// USE A DOT PLUS THE LAST TWO POSITIONS TO MAKE THE HOST DOMAIN NAME
$host = '.' . $x[$y-2] . '.' . $x[$y-1];
}
// START THE SESSION AND SET THE COOKIE FOR ALL SUBDOMAINS
$sess_name = session_name();
if (session_start())
{
// MAN PAGE http://us.php.net/manual/en/function.setcookie.php
setcookie($sess_name, session_id(), NULL, '/', $host, FALSE, TRUE);
}
// PROVE THAT THE COOKIE WORKS IN MULTIPLE DOMAINS
// LOAD UP SOME INFORMATION TO SHOW SESSION CONTENTS
$_SESSION["cheese"] = "Cheddar";
if (!isset($_SESSION["count"])) $_SESSION["count"] = 0;
$_SESSION["count"] ++;
// PUT UP TWO LINKS WITH DIFFERENT SUBDOMAINS
$gost = substr($host,1); // STRIP OFF THE DOT THAT WAS NEEDED FOR SETCOOKIE
$dmn_link = 'http://' . $gost .
'/RAY_dump_session.php'; // var_dump() SCRIPT
$www_link = 'http://www' . $host .
'/RAY_dump_session.php';
echo "<br/><a target=\"_blank\"
href=\"$www_link\">$www_link</a>\n";
echo "<br/><a target=\"_blank\"
href=\"$dmn_link\">$dmn_link</a>\n";
// SHOW WHAT IS IN COOKIE AND IN $_SESSION
echo "<pre>";
echo "COOKIE ";
var_dump($_COOKIE);
echo "\n\n";
echo "SESSION ";
var_dump($_SESSION);
echo "</pre>\n";
?>
<form method="post">
<input type="submit" value="CLICK ME" />
</form>
----
Server IP: 64.71.164.2
Probable Submitter: 74.9.128.130
----
Manual Page -- http://www.php.net/manual/en/function.session-start.php
Edit -- https://master.php.net/note/edit/91334
Del: integrated -- https://master.php.net/note/delete/91334/integrated
Del: useless -- https://master.php.net/note/delete/91334/useless
Del: bad code -- https://master.php.net/note/delete/91334/bad+code
Del: spam -- https://master.php.net/note/delete/91334/spam
Del: non-english -- https://master.php.net/note/delete/91334/non-english
Del: in docs -- https://master.php.net/note/delete/91334/in+docs
Del: other reasons-- https://master.php.net/note/delete/91334
Reject -- https://master.php.net/note/reject/91334
Search -- https://master.php.net/manage/user-notes.php