Solved

losing session variables

Posted on 2006-06-08
6
369 Views
Last Modified: 2008-02-26
Please take a look at this script and see why I'm losing my sessions:

www.owndesigns.com/deed-david/admin/menuorder.txt
0
Comment
Question by:weikelbob
  • 4
  • 2
6 Comments
 
LVL 5

Accepted Solution

by:
BobsRe earned 500 total points
ID: 16866972
Try not using numbers as the session key.  I have never heard of that before, but for som reason when I downloaded your cod on my server it worked when I changed the keys from numbers.  As a quick exampl change your $_SESSION['100']="TESTING123"; to $_SESSION['thf']="TESTING123";

If you need additional help let me know.
0
 
LVL 5

Expert Comment

by:BobsRe
ID: 16866986
Here I cleaned up the code a bit for you, but you need to readd your database stuff.  This is what I did to be able to troubleshoot, mostly just cleaning it up so I could read it.

<?php
session_cache_limiter('nocache');
session_cache_expire (40);
session_start();

error_reporting(E_ALL);
$errors=array();

if (isset($_POST['order2'])) {
      unset($_POST['submit']);
      foreach($_POST as $key => $value) {
            if(!is_numeric($value)) {
                  $errors[]="Your changes are not numeric";
            }
      }
      if(count($_POST) != count(array_unique($_POST))) {
            //there are some duplicates. Use a foreach to detect them.
            $errors[]="Your changes are invalid";
      }
      if (count($errors)==0) {
            // Array elements are NOT unique OR not integer - you can use $a_unique_ints to see all the unique ints available.
            if(isset($_POST['order2'])) {
                  for($j=1;$j<count($_POST) + 1;$j++) {
                        /* $a="order" . $j;
                        echo "a:" . $_POST[$a];
                        echo "<br><br>";
                        $query4="update deedtable set order1= '" . mysql_real_escape_string($_POST[$a]) . "' where order1= '" . mysql_real_escape_string($_SESSION[$j]) . "'";
                        $result4= mysql_query($query4); */
                  }
            }
      }
}

echo <<<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Admin Page</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
   <div id="header">
      <img src="images/header1.jpg">
   </div>

   <div id="whitearea">
END;
print_r($_SESSION);
if (count($errors)>0) {
      $error = implode("<br />", $errors);
      $error = "<span style=\"color:red;font-weight:bold;\">" . $error . "</span>";
      echo $error;
}
echo "
   <p style='text-align:center'>
   To return to the admin home, click <a href='index.php'>here</a>.
   </p>
      <ul style='list-style-type:none'>
      <table cellpadding='1' cellspacing='1'>
      <form action='{$_SERVER['PHP_SELF']}' method='post'>
";

$i=0;
foreach (array(
                                 array("menu" => "Testqqq", "order1" => 1),
                                 array("menu" => "Testqqfdg", "order1" => 3),
                                 array("menu" => "dfgdg", "order1" => 5),
                                 array("menu" => "Tdfestdfg", "order1" => 6)
                                 ) as $row3) {
      echo "<tr>";
      echo "<td>";
      $i++;
echo <<<END
            <li>{$row3['menu']}
         </td>
         <td>  

       <input type="text" size="5" name="order<?php echo $i; ?>" value="{$row3['order1']}">
END;
       $_SESSION['DD' . $i] = $row3['order1'];
       $_SESSION['Thz'] = "TESTING123";      
            echo $_SESSION['DD' . $i];
echo "
            </li>
          </td>
          </tr>";
}

echo <<<END
     
<input type="submit" name="submit" value="Update a page's order">
       </form>
      </table>  
      </ul>
       <p style="text-align:center">
       click <a href="admin-new.php">here</a> to add a page.
       </p>
       
  </div>
<div id="clear1"></div>
</div>

</body>
</html>
END;
print_r($_SESSION);
?>
0
 
LVL 7

Author Comment

by:weikelbob
ID: 16873950
It's working!

so far....
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 5

Expert Comment

by:BobsRe
ID: 16873994
lol,  Good, glad I could help.

  Bobby
0
 
LVL 7

Author Comment

by:weikelbob
ID: 16874523
I didn't use your script, but I went back to my script and added an "a" in the sessions because you suggested to make them not only just numbers. Everything started working.

Thanks a lot.

Bob
0
 
LVL 5

Expert Comment

by:BobsRe
ID: 16874586
Ok I am glad it worked out.  Thanks for the points.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now