i start a new session with : session_start();
then i set some session variable like this :
$_SESSION['name']=$_POST['name'];\
and some another variables.
at bottom of page i set header to diffrent page :
header('location: index.php');
exit();
now in new page (index.php i can't access to my session
variables, like $_SESSION['name'])
what's wrong ?
thanks.
here is my files :
a.php
========================================
session_start();
require ('config.inc.php');
if(isset($_POST))
foreach($_POST as $v=>$k)
{
$items[$v]=$k;
}
$sql="SELECT * FROM members WHERE
username='{$items['user']}' AND
pass=MD5('{$items['Password']}') ";
$res=mysql_query($sql);
$row=mysql_fetch_assoc($res);
if($row['username'])
{ $_SESSION['type']=$row['type'];
$_SESSION['name']=$row['name'];
$_SESSION['family']=$row['family'];
$_SESSION['username']=$row['username'];
$_SESSION['date']=$row['date'];
}
header('location: admin.php');
exit();
======================================
admin.php
=====================================
<?php
session_start();
if(!isset($_SESSION['admin']))
{
header('location: index.php');
exit();
}
require ('config.inc.php');
?>
.
.
.
=================================
Answers were Sorted based on User's Feedback
Answer / ravi
It may be possible you are not start $_SESSION() in index
page. Your code which are shown above is correct. Or may be
You closed session. So checked your code.
| Is This Answer Correct ? | 5 Yes | 1 No |
Answer / muthu
Ravis answer is correct. But sessions wont be closed. It
will be active till the browser closes. OR if($row
['username']) fails that session variable wont be created.
Better you should assign like $_SESSION['name']=''.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / paras
if you have written session_start() in you index.php file
then surely it will work. If you can provide you index.php
file's code then we can answer it with better solution!
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / rahul prasad
Its not working because you have used "exit" at the end.
And it wont work even if you add session_start() at the
beginning.
Remove "exit" and it will work correctly.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / jose martini
I created 4 files:
start.php
admin.php
index.php
sessionend.php
Code:
====================
<?php
/* File: start.php
*/
session_start();
$_SESSION['name']= "Jose";
$_SESSION['lastname']= "Martini";
echo "Start:" . $_SESSION['name'];
header('location: admin.php');
exit();
?>
=================
<?php
session_start();
echo "Admin";
if (isset ($_SESSION['name'])) {
header('location: index.php?'.$_SESSION['name']);
}
else {
echo "Admin: No Session";
}
exit ();
?>
================
<?php
/*
*/
session_start();
if (isset ($_SESSION['name'])) {
echo $_SESSION["name"];
}
else {
echo "Index: no Session";
}
exit();
?>
=======
<?php
/*
*/
session_start();
session_destroy();
echo "End Session";
?>
================
I tried to reproduce the error, the only way that the
session is not available is if you miss to start the session
or to initialized the session variable.
the exit() does not affect the result.
| Is This Answer Correct ? | 0 Yes | 0 No |
What is php dependency injection?
How to initiate a session in php?
What is the difference between indexed and associative array?
How to include variables in double-quoted strings?
Can I learn php in a month?
What are magic methods?
Why use php artisan serve?
How big is varchar max?
What is xss and csrf?
What is beforeRender() used?
when we use ob_start() function in php then the header() and session_start() does not gives the error like header already sent,please explain in brief
Can we override static method in php?