hobbiton73 Posted June 27, 2012 Share Posted June 27, 2012 I wonder whether someone may be able to help me please. I'm using the form shown below to create a list of 'Locations' taken from a mySQL database. Then, via four form buttons, users can navigate to four separate screens all linked to back to the main Location record. <form name="mylocationsconsole" id="mylocationsconsole" method="post" action="locationsaction.php"> <?php include("admin/link.php"); include("admin/opendb.php"); $query = "SELECT * FROM `table` WHERE `userid` = '$idnum' ORDER BY locationname"; $result = mysql_query($query) or die('error'); $num = mysql_numrows($result); mysql_close($connect); $i=0; while ($i < $num) { $lid=mysql_result($result,$i,"locationid"); $lname=mysql_result($result,$i,"locationname"); $laddress=mysql_result($result,$i,"returnedaddress"); include("admin/link.php"); include("admin/opendb.php"); $fquery = "SELECT COUNT(*) num FROM table WHERE locationid = '$lid'"; $fcount = mysql_query($fquery) or die('error'); $row = mysql_fetch_assoc($fcount); $findscount = $row['num']; ?> <br /> <table width="1325" border="0"> <tr> <th width="17"></th> <th width="171"><div align="center">Location Name</div></th> <th width="278"><div align="left">Location Address</div></th> <th width="142"><div align="center">No. Of Finds Made </div></th> <th width="94"></th> <th width="76"></th> <th width="84"></th> <th width="429"></th> </tr> <tr> <td><input type="hidden" name="lid" value="<?=$lid?>" /></td> <td><div align="center"><?php echo $lname;?></div></td> <td><div align="left"><?php echo $laddress;?></div></td> <td><div align="center"><?php echo $findscount?></div></td> <td><div align="center"><input name="type" type="submit" value="View Details"/></div></td> <td><div align="center"><input name="type" type="submit" value="Add Finds"/></div></td> <td><div align="center"><input name="type" type="submit" value="Add Images"/></div></td> <td><div align="left"><input name="type" type="submit" value="View Location Finds"/></div></td> </tr> <tr> <th colspan="8"><br/><hr width="100%"></th></tr> </table> <?php $i++; } if ($num == 0) { echo"<tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td colspan='3'><div align='center'><strong>No locations have been added yet. <a href='saveaddress.php'>Click here</a> to add one.</strong></div></td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr>"; } ?> </form> This code below is the script called by the above form when one of the four form buttons is selected. locationsaction.php <?php session_start(); $_SESSION['lid'] = $_POST['lid']; if (isset($_POST['type'])) { $urls = array( 'View Details' => 'viewlocation.php', 'Add Finds' => 'addfinds.php', 'Add Images' => 'addimages.php', 'View Location Finds' => 'locationfinds.php' ); $url = $urls[$_POST['type']]; header("Location: " . $url); } ?> All of the four receiving pages then have this $lid = $_SESSION['lid']; at the top of each page to capture the variable. All of this was working fine up until two days ago, but the problem I now have is, irrespective of the number of locations in the list, the buttons take me to the correct screens but it is always for the last `Location` record in the list. I've rebuilt the pages which I think could be the problem but I still can't get this to work. I just wondered whether someone may be able to look at this please and let me know where I'm going wrong, or perhaps suggest a better way of doing this. Many thanks and kind regards Quote Link to comment https://forums.phpfreaks.com/topic/264880-session-variables-suddenly-not-working/ Share on other sites More sharing options...
scootstah Posted June 27, 2012 Share Posted June 27, 2012 Do all of the pages have session_start(); at the top? Quote Link to comment https://forums.phpfreaks.com/topic/264880-session-variables-suddenly-not-working/#findComment-1357432 Share on other sites More sharing options...
hobbiton73 Posted June 27, 2012 Author Share Posted June 27, 2012 Hi @scootstah, thank you for replying to my post. No all the pages don't have session start. However this hasn't changed since when the pages worked. Kind regards Quote Link to comment https://forums.phpfreaks.com/topic/264880-session-variables-suddenly-not-working/#findComment-1357434 Share on other sites More sharing options...
scootstah Posted June 27, 2012 Share Posted June 27, 2012 All pages need to have session_start() at the top in order to work with sessions (unless of course the pages are being include'd from a page that does call session_start()). Quote Link to comment https://forums.phpfreaks.com/topic/264880-session-variables-suddenly-not-working/#findComment-1357455 Share on other sites More sharing options...
hobbiton73 Posted June 27, 2012 Author Share Posted June 27, 2012 Hi @scootash, I just wanted to let you know that I've been able to solve this. The problem was how I had set my form up to work with the data that was being through in my PHP script. Although I need to sort out the formatting, this is my solution. <table width="732" border="0"> <tr> <th width="17"></th> <th width="62"><div align="center">Location Name</div></th> <th width="120"><div align="left">Location Address</div></th> <th width="81"><div align="center">No. Of Finds Made </div></th> <th width="86"></th> <th width="72"></th> <th width="84"></th> <th width="769"></th> </tr> <?php include("admin/link.php"); include("admin/opendb.php"); $query = "SELECT * FROM `table` WHERE `userid` = '$idnum' ORDER BY locationname"; $result = mysql_query($query) or die('error'); $num = mysql_num_rows($result); mysql_close($connect); $i=0; while ($i < $num) { $lid=mysql_result($result,$i,"locationid"); $lname=mysql_result($result,$i,"locationname"); $laddress=mysql_result($result,$i,"returnedaddress"); include("admin/link.php"); include("admin/opendb.php"); $fquery = "SELECT COUNT(*) num FROM table WHERE locationid = '$lid'"; $fcount = mysql_query($fquery) or die('error'); $row = mysql_fetch_assoc($fcount); $findscount = $row['num']; mysql_close($connect); ?> <form name="mylocationsconsole" id="mylocationsconsole" method="post" action="locationsaction.php"/> <tr> <td><input type="hidden" name="lid" value="<?=$lid?>" /></td> <td><div align="center"><?php echo $lname;?></div></td> <td><div align="left"><?php echo $laddress;?></div></td> <td><div align="center"><?php echo $findscount?></div></td> <td><div align="center"><input name="type" type="submit" value="View Details"/></div></td> <td><div align="center"><input name="type" type="submit" value="Add Finds"/></div></td> <td><div align="center"><input name="type" type="submit" value="Add Images"/></div></td> <td><div align="left"><input name="type" type="submit" value="View Location Finds"/></div></td> </tr> <tr> <th colspan="8"><br/><hr width="100%"></th></tr> </table> </form> <?php $i++; } if ($num == 0) { echo"<tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td colspan='3'><div align='center'><strong>No locations have been added yet. <a href='saveaddress.php'>Click here</a> to add one.</strong></div></td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr>"; } ?> </table> Thank you very much for all your time and trouble. All the best and kind regards Quote Link to comment https://forums.phpfreaks.com/topic/264880-session-variables-suddenly-not-working/#findComment-1357457 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.