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,但只是要记住。