I have an OO PHP program in which session vars are not being saved. The function in question is $user->login($email_id). Everything up to that point works. When I go into the login function and die($SESSION["user_id"]) I see what I expect to see. However, after the header() command, $SESSION["user_id"] is empty.
index.php:
require_once("init.php");
$option="";
$password_req="";
$email_req="";
extract($_GET,EXTR_IF_EXISTS);
extract($_POST,EXTR_IF_EXISTS);
include($user->docroot."/html/head.htm");
echo $_SESSION["user_id"]; //this now comes up emtpy!
switch($option){
case 'login':
if($_POST){
$credentials=serialize(array("password"=>$password_req));
if($login_id=$user->authenticate($credentials,"user")){
if($user->emailIsValid($email_req)){
$email_id=$user->collectEmail($link,$email_req,$login_id);
$user->login($email_id); //SESSION DATA IS SAVED HERE - FUNCTION DEFINITION BELOW
}else{
include($user->docroot."/html/messages/invalid_email.htm");
include($user->docroot."/html/user/login.htm");
}
}else{
include($user->docroot."/html/messages/login_failed.htm");
include($user->docroot."/html/user/login.htm");
}
}else{
include($user->docroot."/html/user/login.htm");
}
break;
default:
include($user->docroot."/html/user/home.htm");
}
include($user->docroot."/html/foot.htm");
init.php:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
session_save_path("/home/users/web/b2621/moo.studio5wjd/cgi-bin/tmp");
session_start();
ob_start();
set_time_limit(120);
require("dbconn.php");
require_once("classes/systemutils.class.php");
require_once("classes/user.class.php");
$user=new User;
function login()
function login($id){
/*
Starts session with the provided id.
*/
$_SESSION["user_id"]=$id;
session_write_close();
header("location:".$_SERVER["PHP_SELF"]);
}