For those interested I was able to get to the bottom of this issue. My hosting supplier uses multiple servers to do load balancing. As such the folder in which the session variables were stored was stored in a /tmp file on each of the servers. That explained why the session variables would randomly disappear and reappear. It also explained why my single-server "test" system experienced no problems. The solution was to set up a /tmp folder for the session variables in my public_html folder. When I did this everything worked perfectly.
I'm not a professional programmer. I started this website very recently on behalf of a project we do at our church. I'd be interested in others opinions and thoughts regarding how other hosting services handle this issue. Should I have expected to create the /tmp folder within my public_html folder or do other hosting services provide a different approach? Thanks and Happy New Year to everyone. Jerry Kita "Jerry Kita" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > New to PHP and I've checked previous posts and haven't seen similar problem. > Any ideas would be appreciated. > > Have encounted an odd problem. Using session variables to allow users to log > in and out of my site. I've created a test system on my laptop. Apache > 2.0.48, > PHP 4.3.4, MySQL and Windows 2000. On my test system everything works > perfectly. Sessions are created and maintained as long as the browser is > open. > I can also destroy sessions. > > However when I load everything up to my site via FTP the results are very > sporadic. Sessions seem to drop and reappear. While a user is logged in I > display a "Logged in as: XXXXX" message at the top of the page. I can > continually refresh the page and occassionally the "Logged in as" XXXXX" > message will disappear showing the "Please Login Form". If I refresh again > (without logging in) the page shows the user is again "Logged in". > > Here's the script that I use to log users in: > > <?php > error_reporting (E_ALL ^ E_NOTICE); > //check for required fields from the form > if ((!$_POST[userid]) || (!$_POST[password])) { > header("Location: Salkehatchie_Home.php"); > exit; > } > session_start(); > //connect to server and select database > $conn = mysql_connect("x.x.x.x", "xxxxxxxxxx", "xxxxxxxxx") or > die(mysql_error()); > //echo "Connection is $conn <br>"; > mysql_select_db("xxxxxxxxxx_salkehatchie",$conn) or die(mysql_error()); > //create and issue the query > $sql = "select userid, password, privs from userlist where userid = > '$_POST[userid]' AND password = '$_POST[password]'"; > //echo "USERID is $_POST[userid]<br>"; > //echo "PASSWORD is $_POST[password]<br>"; > //echo "SQL is $sql<br>"; > $result = mysql_query($sql,$conn) or die(mysql_error()); > //echo "Result is $result<br>"; > $rows = mysql_num_rows($result); > //echo "Number of Rows are $rows<br>"; > //get the number of rows in the result set; should be 1 if a match > if (mysql_num_rows($result) == 1) { > //if authorized, get the values set the $_SESSION Variables -- userid, > password and privs > $_SESSION[userid] = $_POST[userid]; > $_SESSION[password] = $_POST[password]; > $_SESSION[privs] = mysql_result($result, 0, 'privs'); > //Direct user to members page > header("Location: Salkehatchie_Members_Home.php"); > exit; > } else { > //redirect back to login form if not authorized > header("Location: Salkehatchie_Home.php"); > exit; > } > ?> > > I start off each webpage with the following script: > > <?php > //Check for existence of Valid Login ID > error_reporting (E_ALL ^ E_NOTICE); > header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); > header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); > header("Cache-Control: no-store, no-cache, must-revalidate "); > header("Cache-Control: post-check=0, pre-check=0", false); > header("Pragma: no-cache"); > session_start(); > if (isset($_SESSION[userid])) { > $validlogon = "YES"; > } else { > $validlogon = "NO"; > } > echo $validlogon //test to see if user has previously logged on > > This all works perfectly on my test system but creates problems at my site. > If anyone would like to see this for themselves go to the following site: > > http://www.salkehatchiehuntersville.com/Salkehatchie_Home.php > > and log in using test/test as userid/password. When logged in go back to the > home page and then continually refresh that page. You will see that that the > user moves in and out of a logged in status. This will also show up on other > pages but since this site is under construction it's safest to stick to the > HOME page. > > Other possibly helpful information. Web Hosting site is BlueDomino. > > Thanks for your help. > > Jerry Kita > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php