Re: Re: SESSION and include

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ok.. I was a little too fast again when explaining my problem.. Gonna put some code up for you to see...

First of all I DO use quotes. I tried both single and double ones (',")

Ok here are some code:

IN LOGINSCRIPT:
<?
/* Check User Script */
session_start();  // Start Session

include 'db.php';
// Convert to simple variables
$username = $_POST['username'];
$password = $_POST['password'];

if((!$username) || (!$password)){
   echo "Please enter ALL of the information! <br />";
   include 'index.htm';
   exit();
}

// Convert password to md5 hash
$password = md5($password);

// check if the user info validates the db
$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
   while($row = mysql_fetch_array($sql)){
   foreach( $row AS $key => $val ){
       $$key = stripslashes( $val );
   }

       $_SESSION['first_name'] = $row["first_name"];
       $_SESSION['last_name'] = $row["last_name"];
       $_SESSION['email_address'] = $row["email_adress"];
$_SESSION['user_level'] = $row["user_level"]; header("Location: index.php");
   }
} else {
echo "You could not be logged in! Either the username and password do not match or you have not validated your membership!<br />Please try again!<br />";
   include 'index.htm';
}
?>



IN INDEX.PHP:

<?
session_start();
if ( empty( $_SESSION['first_name'] ) ) {
?> <center><font color=red><strong>You are not logged in!</strong></font></center><br />

   <? include 'index.htm';
} else { include 'db.php';
              include("http://test.bluenotevoices.se/data.php";);
?>

   [... Some code here...]

/* defining variables ... ($main is actually transered from last page the user was on, so in my script it is not defined but I put the code here to let you see it...) */
$main="page.php"

               <?php  if ("1"==$_SESSION['user_level']){
?> [ Some working code here ]
                  <? }
require ($main);
?>
}


IN PAGE.PHP
<?php
session_start();
include "data.php";
if (empty($_SESSION['user_level'])) { echo ("Session is empty");}
?>
[More code here]


Can you see anything I am doing wrong?
/F


Jochem Maas wrote:

Fredrik Tillman wrote:

ok.. Let me explain the problem better.

'user_level' is set by a login script. It seems to be working fine since I can make things like:
if  ("1"==$_SESSION[user_level]) { let this stuff happen }


$_SESSION[user_level] is wrong unless 'user_level' is a defined constant
in your code (I bet it isn't).

instead write: $_SESSION['user_level']

-- notice the quotes, they delimit the _string_ that is the key of the
array. array keys are either strings or integers.

on my mainpage.

on that same mainpage I use
include ("page.php");
(I also tried require...)

If I access page.php directly (by writing the URL in my browser) things like
if  ("1"==$_SESSION[user_level]) { let this stuff happen }
will work just fine, but when page.php is included in mainpage the $_SESSION[user_level] is empty for that included part...


how is $_SESSION['user_level'] being set and/or updated?
have you tried a var_dump($_SESSION) on the included page to
see what _is_) in the session?
are you per change closing the session prior to including the relevant file?

I think you'll need to show some code - the way you describe it seems
to me to be not possible that $_SESSION['user_level'] is set in the first script and nolonger available in the included script ($_SESSION is a super global
that is available everywhere so long as there is an active/open session)


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux