By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,637 Members | 3,079 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,637 IT Pros & Developers. It's quick & easy.

Saving data between pages

P: n/a
Is it possible to save session values between pages? I did a little script
to let the users login. I use this script to check username and password the
user introduces in a form in the main page, index.php.
If a user is found with username and password, than I create
$_SESSION['Login'] and assign it a value of true, else I assign it a value
of false. If a user is non registered, I send it to the proper page to
register, RegistraUtente.php, if he is registered yet, I send him back to
index.php
But here in index.php $_SESSION['Login'] has no value.

Here is the script I wrote:

<?php

session_start();

include("dbconnect.php");

$tabella="table";

$dbname="Zucca";

if (!isset($_SESSION['Login']))

{

$_SESSION['Login']=false;

}

$IdUser=session_id();

$data=date('Y-m-d');

if (!ISSET($HTTP_COOKIE_VARS["PiOnLine"]))

setcookie("PiOnLine",$IdUser,time()+60*60*24*365);

else

$IdUser=$HTTP_COOKIE_VARS["PiOnLine"];

mysql_select_db($dbname,$db);

$username=$_POST["username"];

$password=$_POST["password"];

$query="Select Username, UserPassword from $tabella where
('$password'=UserPassword) and ('$username'=Username)";

$result=mysql_query("$query") or die(mysql_error());

// Se esiste l'utente con username e password allora consenti il login

if (mysql_num_rows($result)==1)

{

$_SESSION['Login']=true;

session_write_close();

$url="index.php";

header ("Location: $url");

}

else // Invia l'utente sulla pagina di registrazione

{

$_SESSION['Login']=false;

session_write_close();

$url="RegistraUtente.php";

header ("Location: $url");

}

?>
Franz

Jul 17 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
The whole point of session variables is inter-pageview preservation. You
just aren't using the session vars just right. Where you did:

$_SESSION['Login']=true;

You should have done:

$Login = true;
session_register("Login");

Later, pages can access it as $HTTP_SESSION_VARS["Login"]. I'm not sure if
there are differences between $HTTP_SESSION_VARS and $_SESSION - check the
PHP docs @ http://www.php.net and remember to provide a logout:

$Login=false;
session_register("Login");

You can also log the user out by using session_destroy().
~Eric

My PGP public key: http://www.parabolagames.com/chem/pgppubkey.txt

"Lamp" <la**@dina.it> wrote in message
news:HQ**********************@news4.tin.it...
Is it possible to save session values between pages? I did a little script
to let the users login. I use this script to check username and password the user introduces in a form in the main page, index.php.
If a user is found with username and password, than I create
$_SESSION['Login'] and assign it a value of true, else I assign it a value
of false. If a user is non registered, I send it to the proper page to
register, RegistraUtente.php, if he is registered yet, I send him back to
index.php
But here in index.php $_SESSION['Login'] has no value.

Here is the script I wrote:

<?php

session_start();

include("dbconnect.php");

$tabella="table";

$dbname="Zucca";

if (!isset($_SESSION['Login']))

{

$_SESSION['Login']=false;

}

$IdUser=session_id();

$data=date('Y-m-d');

if (!ISSET($HTTP_COOKIE_VARS["PiOnLine"]))

setcookie("PiOnLine",$IdUser,time()+60*60*24*365);

else

$IdUser=$HTTP_COOKIE_VARS["PiOnLine"];

mysql_select_db($dbname,$db);

$username=$_POST["username"];

$password=$_POST["password"];

$query="Select Username, UserPassword from $tabella where
('$password'=UserPassword) and ('$username'=Username)";

$result=mysql_query("$query") or die(mysql_error());

// Se esiste l'utente con username e password allora consenti il login

if (mysql_num_rows($result)==1)

{

$_SESSION['Login']=true;

session_write_close();

$url="index.php";

header ("Location: $url");

}

else // Invia l'utente sulla pagina di registrazione

{

$_SESSION['Login']=false;

session_write_close();

$url="RegistraUtente.php";

header ("Location: $url");

}

?>

Franz

Jul 17 '05 #2

P: n/a
"Eric Stein" <no@spam.com> wrote in message
news:c6***********@news.wplus.net...
The whole point of session variables is inter-pageview preservation. You
just aren't using the session vars just right. Where you did:

$_SESSION['Login']=true;

You should have done:

$Login = true;
session_register("Login");


No, $_SESSION['Login'] = true should work perfectly fine. I'm not entirely
sure what the problem is. I suspect it has something to do with setting the
cookie. In general when you're using session variables, you should keep your
hand off the cookie. Stay away from session_register() too.
Jul 17 '05 #3

P: n/a
Chung,
Sorry, I didn't know - but I've been using session_register() for a long
time and it's always worked. Why shouldn't I use it?
~Eric

My PGP public key: http://www.parabolagames.com/chem/pgppubkey.txt

"Chung Leong" <ch***********@hotmail.com> wrote in message
news:sc********************@comcast.com...
No, $_SESSION['Login'] = true should work perfectly fine. I'm not entirely
sure what the problem is. I suspect it has something to do with setting the cookie. In general when you're using session variables, you should keep your hand off the cookie. Stay away from session_register() too.

Jul 17 '05 #4

P: n/a
Eric Stein <no@spam.com> wrote:
Chung,
Sorry, I didn't know - but I've been using session_register() for a long
time and it's always worked. Why shouldn't I use it?


Because the manual says so :)
<q src='http://nl2.php.net/session_register'>
Caution

If you want your script to work regardless of register_globals, you need
to instead use the $_SESSION array as $_SESSION entries are
automatically registered. If your script uses session_register(), it
will not work in environments where the PHP directive register_globals
is disabled.
</q>

Also look at the other warnings.

--

Daniel Tryba

Jul 17 '05 #5

P: n/a
Eric Stein wrote:
The whole point of session variables is inter-pageview preservation. You
just aren't using the session vars just right. Where you did:

$_SESSION['Login']=true;

You should have done:

$Login = true;
session_register("Login");

Later, pages can access it as $HTTP_SESSION_VARS["Login"]. I'm not sure
if there are differences between $HTTP_SESSION_VARS and $_SESSION - check
the PHP docs @ http://www.php.net and remember to provide a logout:

$Login=false;
session_register("Login");

You can also log the user out by using session_destroy().
~Eric

My PGP public key: http://www.parabolagames.com/chem/pgppubkey.txt

"Lamp" <la**@dina.it> wrote in message
news:HQ**********************@news4.tin.it...
Is it possible to save session values between pages? I did a little
script to let the users login. I use this script to check username and
password

the
user introduces in a form in the main page, index.php.
If a user is found with username and password, than I create
$_SESSION['Login'] and assign it a value of true, else I assign it a
value of false. If a user is non registered, I send it to the proper page
to register, RegistraUtente.php, if he is registered yet, I send him back
to index.php
But here in index.php $_SESSION['Login'] has no value.


From the posted script the problem isn't immediately obvious. Other than
maybe the following. Are you testing the script on your local box running a
web server? Make sure that you access your script through
http://127.0.0.1/scriptname.php and not http://localhost/scriptname.php
because: If you session_start() on a "localhost" page, that session is not
available to a "127.0.0.1" page. On Apache, I can access
http://localhost/login.php no problem, but when I send the variable to a
relative path from login.php, Apache changes the hostname to the loopback
interface, 127.0.0.1, which of course the session won't work for.

Just a thought :)

..:Albe

--
http://www.ninja.up.ac.za
Jul 17 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.