会话管理HTML客户端和PHP服务器


Session Management HTML Client and PHP on Server

Serverside: PHP客户端:HTML和Javascript

我试图在HTML (Phonegap)中创建一个会话管理器。HTML应该在服务器端维护基于PHP认证的会话。

我能够在PHP中启动会话(它在下面的代码),我需要的是,PHP的这个会话代码应该在HTML中启动。

我希望PHP的会话在HTML中,因为phonegap不理解PHP文件。所以我需要管理一切与HTML和javascript。

HTML:

<input type="text" name="txt" id="txt" placeholder="Enter Your ID"   class="inputText"  />
<input type="submit" OnClick="JavaScript:doCallAjax();"  class="inputSubmit" value="Login">      
Javascript:


脚本:var HttPRequest = false;

               function doCallAjax() {
                  HttPRequest = false;
                  if (window.XMLHttpRequest) { // Mozilla, Safari,...
                     HttPRequest = new XMLHttpRequest();
                     if (HttPRequest.overrideMimeType) {
                        HttPRequest.overrideMimeType('text/html');
                     }
                  } else if (window.ActiveXObject) { // IE
                     try {
                        HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
                     } catch (e) {
                        try {
                           HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                     }
                  } 
                  if (!HttPRequest) {
                     alert('Cannot create XMLHTTP instance');
                     return false;
                  }
                  var url = 'http://localhost:9999/working-DONOT-TOUCH/login.php';
                  var pmeters = "tPassword=" + encodeURI( document.getElementById("txt").value );

                    HttPRequest.open('POST',url,true);
                    HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                    HttPRequest.setRequestHeader("Content-length", pmeters.length);
                    HttPRequest.setRequestHeader("Connection", "close");
                    HttPRequest.send(pmeters);

                    HttPRequest.onreadystatechange = function()
                    {
                        if(HttPRequest.readyState == 3)  // Loading Request
                        {
                            document.getElementById("mySpan").innerHTML = "Now is Loading...";
                        }
                        if(HttPRequest.readyState == 4) // Return Request
                        {
                            if(HttPRequest.responseText == 'Y')
                            {
                                window.location = 'mainmenu.html';
                            }
                            else
                            {
                                alert('Wrong User ID    ');
                            }
                        }
                    }
               }
            </script>
PHP:

    session_start();

    $password = trim($_POST["tPassword"]);


    if(trim($password) == "")
    {
        echo "<font color=red>**</font> Plase enter [ID]";
        exit();
    }

    $mysqli=mysqli_connect('localhost','root','root','db');

$query = "SELECT * FROM pg_master_students_details WHERE  Stu_Register_No='$password'";
$result = mysqli_query($mysqli,$query)or die(mysqli_error());
$num_row = mysqli_num_rows($result);
        $row=mysqli_fetch_array($result);
    if($row)
    {
        echo "Y";

        $_SESSION["password"] = $password;
        session_write_close();
    }
    else
    {
        echo "<font color=red>**</font> ID is wrong";
    }
    mysqli_close($mysqli);
?>

你应该管理所有的html内容基于json请求到您的服务器通过javascript。当您登录到服务器时,服务器通过返回一个cookie (PHPSESSID)进行响应。如果您在您的请求中使用相同的cookie,您的会话在登录后将是相同的。我不确定是否jquery(例如),在每个ajax请求中维护相同的cookie,但只是要记住。