Session missing in passing thru pages

General discussions related to php

Moderators: egami, macek, gesf

Post Reply
ransome
New php-forum User
New php-forum User
Posts: 7
Joined: Tue Jan 14, 2003 6:36 pm

Wed Jan 15, 2003 5:42 pm

Dear all,

In my project, a login page is set as index.php which check the login user and creat appropiate session for various user by :

session_start;
:
check user statements
:
$super = $username;
session_register("super");

then the page jump to next page and so on, the sessionID is passed thru quite smoothly.

But the session lost when I try to made insertion or updating database when it pass to a html form. I have code the necessary codes for using the session but whatever I do, I check the session string is empty !!

How can I fix the problem ?



With regards,

Ransome :cry:

User avatar
WiZARD
Moderator
Moderator
Posts: 1240
Joined: Thu Jun 20, 2002 10:14 pm
Location: Ukraine, Crimea, Simferopol
Contact:

Thu Jan 16, 2003 12:07 am

At each page you do:

Code: Select all

<?PHP
session_start();
if (!session_is_registered("super")) {
Sorry you not registered :^(
}
"Sex,Drugs and Rock&Roll " replaced at "Sucks,Bugs and Plug&Play";
Image

ransome
New php-forum User
New php-forum User
Posts: 7
Joined: Tue Jan 14, 2003 6:36 pm

Thu Jan 16, 2003 5:09 pm

WiZARD wrote:At each page you do:

Code: Select all

<?PHP
session_start();
if (!session_is_registered("super")) {
Sorry you not registered :^(
}


Dear WiZARD,

How can I do after checking whether the session is registered or not :

say not:

Do I code that :

if (!session_is_registered("super"))
{
global $super;
$super = $username;
session_register("super");
}


Will the sessionID generated is the same as the sessionID I registered before ?




With regards,


Ransome

User avatar
WiZARD
Moderator
Moderator
Posts: 1240
Joined: Thu Jun 20, 2002 10:14 pm
Location: Ukraine, Crimea, Simferopol
Contact:

Fri Jan 17, 2003 12:56 am

How about this?

Code: Select all

session_start();

function GetSession($parameter_name)
{
    global $HTTP_SESSION_VARS;
    return isset($HTTP_SESSION_VARS[$parameter_name]) ? $HTTP_SESSION_VARS[$parameter_name] : "";
}

function SetSession($param_name, $param_value)
{
  global ${$param_name};
  if(session_is_registered($param_name))
    session_unregister($param_name);
  ${$param_name} = $param_value;
  session_register($param_name);
}
if (!GetSession("User")) {
SetSession("User", "super");
SetSession("Rights", "none");
}


From worked project.....
"Sex,Drugs and Rock&Roll " replaced at "Sucks,Bugs and Plug&Play";
Image

User avatar
Redcircle
Moderator
Moderator
Posts: 826
Joined: Tue Jan 21, 2003 10:42 pm
Location: Michigan USA
Contact:

Tue Jan 21, 2003 11:26 pm

using the $_SESSION array would be an easier to understand and less complex way to do it.

Translated code.

Code: Select all

session_start(); 

function GetSession($parameter_name)
{

    return isset($_SESSION[$parameter_name]) ? $_SESSION[$parameter_name] : "";
}

function SetSession($param_name, $param_value)
{
 if(!isset($_SESSION[$param_name]))
    $_SESSION[$param_name] = $param_value;
}
if (!GetSession("User")) {
SetSession("User", "super");
SetSession("Rights", "none");
}



notice the SetSession is much more readable. and since the $_SESSION is a global array it will act just like other arrays and you will not have to make a global command which is something I always forget to do. Just one note. in order to use this method you must be using PHP 4.1 or later.

User avatar
WiZARD
Moderator
Moderator
Posts: 1240
Joined: Thu Jun 20, 2002 10:14 pm
Location: Ukraine, Crimea, Simferopol
Contact:

Wed Jan 22, 2003 8:03 am

I know what this code work under PHP 4.1.x and later...
P.S. Some program may be fat but work faster......
Some instructions of PHP work faster but if you programming this, you need more typing code :wink: :?
"Sex,Drugs and Rock&Roll " replaced at "Sucks,Bugs and Plug&Play";
Image

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 2 guests