Обсуждение: Strange problem with session and header("Location:script.php?".SID)
Strange problem with session and header("Location:script.php?".SID)
От
Andrei Verovski (aka MacGuru)
Дата:
Hi,
I have very strange problem with sessions (it is not directly related
to postgres, although I am using pgsql in my app).
There is a class MyApp which does certain jobs, and instance of this
class (not shown here). In function OpenMainPage() I have started
session, assigned name to it and registered certain variables.
file: MyApp.php
class MyApp {
// --- MORE STUFF HERE
function OpenMainPage()
{
$res = $this -> mDb -> Execute('SELECT * FROM contacts');
if ($res -> RecordCount() == 0)
$this -> SetupDefaultDBRecords();
session_start();
session_name('MyApplicationSession');
$aaa = "blah blah blah";
if (! session_register("aaa"))
echo "failed to register variable";
header("Location:StartupPage.php?".SID);
}
}
----------------------------------------------
Then I would like to pass the control to script called StartupPage.php
using header("Location:StartupPage.php?".SID).
file StartupPage.php
//include_once('anvgwg_session_start.php');
session_start();
echo session_name(); // prints PHPSESSION or something like this
echo $_SESSION["aaa"]; // prints nothing
----------------------------------------------
However, session seem to be terminated, although I have used SID. I
have tried to move session_start();
session_name('MyApplicationSession') to the first script where the
instance of MyApp class have been created and used, but the result is
the same. I have checked PHP options (default install of PHP 4.2.3 and
Apache2 on SuSE Linux 8.2), enable-trans-sid and track-vars options are
on, so it should work. Quite strange, but {echo SID} prints nothing,
although { echo session_ID() } prints long cryptic string. I have some
other PHP programs installed on my server, but they working without
problem header("Location:script.php?".SID) without cookies (my app
should work without cookies enabled in browser).
Anyone have an idea what is wrong?
Thanks in advance for any suggestion.
*********************************************
* Best Regards --- Andrei Verovski
*
* Personal Home Page
* http://snow.prohosting.com/guru4mac
* Mac, Linux, DTP, Development, IT WEB Site
*********************************************
* Andrei Verovski <andreil1@mail.starlett.lv> [06.05.2003 12:06]:
> Hi,
>
> I have very strange problem with sessions (it is not directly related
> to postgres, although I am using pgsql in my app).
It's still off-topic.
> header("Location:StartupPage.php?".SID);
I think in PHP you should use $SID, not just SID.
In your case SID is changed to string "SID" (default behaviour, may differs
in different versions of PHP). In such cases PHP generates warnings.
May be should change error reporting level during debug stage:
error_reporting(E_ALL);
Hope that helps.
--
Victor Yegorov