keeping state with ajaxform

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

keeping state with ajaxform

bouton
With php I set sessions. As ajax is client set, how do I keep state? I want a user to pass a mysqldb user authorization, and have a flag set throughout their session sthat says they are ok to view certain items.</p>
using the ajaxform sample I have

login.php
<?php
session_start();
?>
                $(document).ready(function()
                {
                        $('#layer1').Draggable(
                                        {
                                                zIndex: 20,
                                                ghosting: false,
                                                opacity: 0.7,
                                                handle: '#layer1_handle'
                                        }
                                );
                        $('#layer1_form').ajaxForm({
                                target: '#content',
                                success: function()
                                {
                                        $("#layer1").hide();
                                }
                        });
                        $("#layer1").hide();
                                               
                        $('#login').click(function()
                        {
                                $("#layer1").show();
                        });
                       
                        $('#close').click(function()
                        {
                                $("#layer1").hide();
                        });
                });
        </script>
        <div id="content">
                Login
        </div>
        <div id="layer1">
                <div id="layer1_handle">                       
                        [ x ]
                        Login
                </div>
                <div id="login_content">
                        <form id="layer1_form" method="post" action="post.php">
                                <input type="text" name="user" value="" /><br>
                                <input type="password" name="pass" value="" /><br>
                                <input type="checkbox" name="remember" value=""/>
                                <input type="submit" name="submit" value="Login" />
                        </form>
                </div>
        </div>
    </div>

<div>
userdetails.php?userID=???????? --- i want the user_ID from database in here
</div>


this uses post.php to query the database, find out the user is valid, then returns a "hello user" message in the place of the login button

post.php
function procLogin(){
      global $session, $form;
      $retval = $session->login($_POST['user'], $_POST['pass'], isset($_POST['remember']);
      /* Login successful */
      if($retval){
                $message = "Welcome " . $session->first_name ." " . $session->last_name." <a href=\"post.php\">Logout";
      }
      /* Login failed */
      else{
                 $message = "Try Again: ";
                 $message = $message . $form->error("user");
                 $message = $message . $form->error("pass");
      }
        echo $message;
  }

This almost works fine. the $message line shows up fine with the session->first_name etc - but I can't get the user_ID to show up in place I want it.<p>

Any hints?

thanks