Newbiephper Posted July 12, 2006 Share Posted July 12, 2006 ok ill show the processfirst is Check User;[code]<?/* Check User Script */session_start(); // Start Sessioninclude 'db.php';// Conver to simple variables$username = $_POST['username'];$password = $_POST['password'];if((!$username) || (!$password)){ echo "Please enter ALL of the information! <br />"; include 'login_form.html'; 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 ); } // Register some session variables! session_register('first_name'); $_SESSION['first_name'] = $first_name; session_register('last_name'); $_SESSION['last_name'] = $last_name; session_register('email_address'); $_SESSION['email_address'] = $email_address; session_register('special_user'); $_SESSION['user_level'] = $user_level; session_register('userid'); $_SESSION['userid'] = $userid; session_register('username'); $_SESSION['username'] = $username; mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'"); header("Location: header.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 'login_form.html';}?>[/code]this is from phpfreaks i added two additional register session handles userid and username.this takes u toheader.php : simple menu selection[code]<?phpsession_start();echo "Welcome Commander". $_SESSION['username'] ." to you empire.";echo "Manage your kingdom:";echo"<a href='buildings.php>Buildings</a>";echo"<a href='research.php>Research</a>";echo"<a href='shipyard.php>Shipyard</a>";?>[/code]so to the main part of site: the session should follow and maintain userid and username right?[code]<?phpsession_start();//buildings.php//open database connectionsrequire_once('db.php');if ($_POST['farm'] || $_POST['house'] || $_POST['mine']){ $farm = $_POST['farm'] > 0 ? $_POST['farm'] : 0; $house = $_POST['house'] > 0 ? $_POST['house'] : 0; $mine = $_POST['mine'] > 0 ? $_POST['mine'] : 0; $qry = "update buildings set nfarms = nfarms + " . $farm . " where userid='$userid', nhouse = nhouse + " . $house . " where userid='$userid', nfarm = nfarm + " . $farm . " where userid='$userid'"; $qry = mysql_query($qry);}//define planet sizedefine("TLAND", 200);//get current number of buildings$qry="select nfarms,nhomes,nmines from buildings where userid='$userid'";$qry = mysql_query($qry);$row = mysql_fetch_assoc($qry);$nf = $row[nfarms];$nh = $row[nhomes];$nm = $row[nmines];//check for free land sapce$fland = ((TLAND) - ($nf+$nh+$nm));//output current dataecho "Total land: " . TLAND;echo "Free land: " . $fland;echo "Number of Farms: " . $nf;echo "Number of Homes: " . $nh;echo "Number of Mines: " . $nm;//allow building formif ($fland>0){?><form action="<?=$_SERVER['PHP_SELF']?>" method="post"><input size="4" type="text" name="farm"><input size="4" type="text" name="house"><input size="4" type="text" name='mine'><input type="submit" name="submit" value="Build"><?php}else{echo "No free land to build upon";}?>[/code]until finally they can logout (this again from php freaks)[code]<?session_start();if(!isset($_REQUEST['logmeout'])){ echo "<center>Are you sure you want to logout?</center><br />"; echo "<center><a href=logout.php?logmeout>Yes</a> | <a href=javascript:history.back()>No</a>";} else { session_destroy(); if(!session_is_registered('first_name')){ echo "<center><font color=red><strong>You are now logged out!</strong></font></center><br />"; echo "<center><strong>Login:</strong></center><br />"; include 'login_form.html'; }}?>[/code]so why do my sessions not work for keeping userid and username for main section of site i.e. buildings.php. is there some clash or am i going wrong somewhere. Quote Link to comment https://forums.phpfreaks.com/topic/14395-sessions-dont-work/ Share on other sites More sharing options...
kenrbnsn Posted July 12, 2006 Share Posted July 12, 2006 Remove all of the session_register() function calls.Please read all of the cautions about this function at http://www.php.net/manual/en/function.session-register.phpKen Quote Link to comment https://forums.phpfreaks.com/topic/14395-sessions-dont-work/#findComment-56836 Share on other sites More sharing options...
Newbiephper Posted July 12, 2006 Author Share Posted July 12, 2006 ok i read the page 2x over and say cautions talk of globals but wasnt understanding it just as i havent understood any of that manual. i read that since php 4 globals are off by default and will be completely removed in php 6.so maybe im missing something but what do i replace register session with/how do i solve my problem?wow im more confused now than before :([quote]If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.[/quote][quote]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. [/quote]does this mean its automatic? i.e. i dont need to do anything other than delete the waste code (i.e. register session)?i origianlly though the problem was with my code, particuarly bits like this [code]where userid='$userid'[/code] Quote Link to comment https://forums.phpfreaks.com/topic/14395-sessions-dont-work/#findComment-56842 Share on other sites More sharing options...
GingerRobot Posted July 12, 2006 Share Posted July 12, 2006 indeed, to declare a session simply do:$_SESSION['sessioname'] = "Session value"; Quote Link to comment https://forums.phpfreaks.com/topic/14395-sessions-dont-work/#findComment-56843 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.