Reputation: 20090
When one page is accessed, I would like to start a session and store a session variable:
<?php
session_start();
$_SESSION['myvar']='myvalue';
?>
Then from another page, I would like to check if that session variable has been stored:
<?php
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
?>
This code does not work for me.
Upvotes: 25
Views: 162761
Reputation: 352
Try this
First Page
<?php
session_start();
$_SESSION['myvar']='myvalue';
?>
Second page
<?php
session_start();
echo $_SESSION['myvar'];
?>
Upvotes: 0
Reputation: 5396
Defining session before everything, No output should be before that, NO OUTPUT
<?php
session_start();
?>
Set your session inside a page and then you have access in that page. For example this is page 1.php
<?php
//This is page 1 and then we will use session that defined from this page:
session_start();
$_SESSION['email']='[email protected]';
?>
Using and Getting session in 2.php
<?php
//In this page I am going to use session:
session_start();
if($_SESSION['email']){
echo 'Your Email Is Here! :) ';
}
?>
NOTE: Comments don't have output.
Upvotes: 26
Reputation: 1
Starting a Session:
Put below code at the top of file.
<?php session_start();?>
Storing a session variable:
<?php $_SESSION['id']=10; ?>
To Check if data stored in session variable:
<?php if(isset($_SESSION['id']) && !empty(isset($_SESSION['id'])))
echo “Session id “.$_SESSION['id'].” exist”;
else
echo “Session not set “;?>
?> detail here http://skillrow.com/sessions-in-php-4/
Upvotes: -1
Reputation: 21
Every time you start a session (applies to PHP version 5.2.54), session_start()
creates a new session id.
Here is the fix that worked for me.
File1.php
session_id('mySessionID'); //SET id first before calling session start
session_start();
$name = "Nitin Hurkadli";
$_SESSION['username'] = $name;
File2.php
session_id('mySessionID');
session_start();
$name = $_SESSION['username'];
echo "Hello " . $name;
Upvotes: -1
Reputation: 171
All you want to do is write --- session_start(); ----- on both pages..
<!-- first page -->
<?php
session_start();
$_SESSION['myvar'] = 'hello';
?>
<!-- second page -->
<?php
session_start();
echo $_SESSION['myvar']; // it will print hello
?>
Upvotes: 16
Reputation: 655239
Reasoning from the comments to this question, it appears a lack of an adjusted session.save_path causes this misbehavior of PHP’s session handler. Just specify a directory (outside your document root directory) that exists and is both readable and writeable by PHP to fix this.
Upvotes: 9
Reputation: 179046
In the possibility that the second page doesn't have shared access to the session cookie, you'll need to set the session cookie path using session_set_cookie_params:
<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
$_SESSION['myvar']='myvalue';
And
<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
Upvotes: 1
Reputation: 1430
Try this:
<!-- first page -->
<?php
session_start();
session_register('myvar');
$_SESSION['myvar'] == 'myvalue';
?>
<!-- second page -->
<?php
session_start();
echo("1");
if(session_is_registered('myvar'))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
?>
Upvotes: -5