fife Posted June 27, 2011 Share Posted June 27, 2011 Im having issues destroying a session and then re-creating the session again. Its easier to show the code. First of all I have a form that shows you different business details. <form action="" method="POST" id="mybusfrm"> <ul id="bus_list"> <li><input type="image" src="<?php if ($CP['logo']=='logo_default.jpg') { echo "/images/logo_default.jpg"; } else { echo "/members/images/{$CP['county']}/{$CP['logo']}"; } ?>" width="60" height="60" id="businsert" name="businsert" /> </li> <li><?php echo $CP['name']; ?></li> <input name="bus" type="hidden" value="<?php echo $CP['busID'];?>"> <input name="pap" type="hidden" value="<?php echo $CP['permission'];?>"> </ul> </form> I have two hidden fields with the business ID and the users permission. The information that displays on the page is taken from the session $_SESSION['busID'] This session is fed through a function that gets the details. Before that obviously if the user clicks a different business then the page needs to update with the business details from the newly replaced session variable. so for the code that changes the variable name. if(isset($_POST['businsert_x'])){ session_destroy($_SESSION['busID']); session_destroy($_SESSION['pap']); $bus = trim($_POST['bus']); $pap = trim($_POST['pap']); if (is_numeric($bus) && is_numeric($pap)) { $bus = mysql_real_escape_string($bus); $pap = mysql_real_escape_string($pap); $_SESSION['busID'] = $bus; $_SESSION['pap'] = $pap; $url = "index.php"; header("Location: $url"); } else {echo "Fail";}} //end check club This code has been previously working but for some reason its now stopped. Also I get a logo error of Wrong parameter count for session_destroy() in /home/sites/site.com/public_html/members/index.php on line 10, referer: http://www.site.com/members/index.php there is also one for line 11. These two lines are the session_destroy($_SESSION['busID']); lines respectively. I have tried adding to the page refresh...... $url = "index.php/business='$busID'&'$pap'"; To see if the variables are even changing when a different business is selected and they do. Please help. Thanx Link to comment https://forums.phpfreaks.com/topic/240553-session_destroy/ Share on other sites More sharing options...
DavidAM Posted June 27, 2011 Share Posted June 27, 2011 session_destroy destroys the entire session, not an individual variable stored in the session. To remove a variable from a session you can just unset it: if(isset($_POST['businsert_x'])){ unset($_SESSION['busID'], $_SESSION['pap']); This code has been previously working but for some reason its now stopped. Most likely this code has always been throwing an error. Your error_reporting value was probably set in such a way as to prevent the errors from being displayed. Link to comment https://forums.phpfreaks.com/topic/240553-session_destroy/#findComment-1235616 Share on other sites More sharing options...
fife Posted June 27, 2011 Author Share Posted June 27, 2011 Ok thats great thank you. I have changed that but the page is still not updating with the new business details. After that form has processed i am left with a new $_SESSION variable (which is basically an ID) then I have this code $Thebus = TheBus($_SESSION['busID']); echo $Thebus['name']; and the function function TheBus($busID) { $Thebusq = mysql_query("SELECT * FROM business WHERE busID = '$busID'"); $Thebus = mysql_fetch_array($Thebusq); return $Thebus; } Link to comment https://forums.phpfreaks.com/topic/240553-session_destroy/#findComment-1235629 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.