我创建了一个简单的PHP登录验证脚本,现在我想覆盖从表单到auth脚本的数据发布,以便它通过ajax完成。
我这样做是为了让PHP以{"success":[1 OR 0],"error";"ANY ERROR MESSAGE RELATED TO SUCCESS = 0"}
格式返回JSON数据,这非常有效,当我尝试使用登录表单时,它返回success:1
,当我序列化表单并将其发布到使用正确的用户名+密码的auth脚本,它返回success:0
以及登录错误的原因,在表单发布到auth脚本的原始方法上,然后auth脚本在成功后重定向到受保护的页面登录我已经用javascript更改窗口位置取代成功后登录成功登录,只有问题是看来会话变量没有通过这种方法发布到auth脚本中设置。
有没有办法让会话变量保持不变而不必直接到页面?
答案 0 :(得分:0)
使用JavaScript创建会话变量
<?php session_start(); ?>
<html>
<head>
<script type='text/javascript'>
function setSession(variable, value) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "setSession.php?variable=" + variable + "&value=" + value, true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php
if(isset($_SESSION['login']) && $_SESSION['login'] == "true")
echo "Session Active. <a href=\"javascript:setSession('login', 'false')\"><input type='submit' value='De-Activate'></a>";
else
echo "Session Inactive. <a href=\"javascript:setSession('login', 'true')\"><input type='submit' value='Activate'></a>";
echo "<a href=\"index.php\"><input type='submit' value='Re-Load Page'></a>";
?>
</body>
</html>
为其指定值
<?php
session_start();
if(isset($_REQUEST['variable']) && isset($_REQUEST['value']))
{
$variable = $_REQUEST['variable'];
$value = $_REQUEST['value'];
$_SESSION[$variable] = $value;
}
?>
答案 1 :(得分:0)
你可以做这样的事情
<script src='javascript.php'></script>
然后在脚本中,您可以编写此文件以访问会话变量
<?php header("Content-type: application/javascript"); ?>
$(function() {
$( "#progressbar" ).progressbar({
value: <?php echo $_SESSION['value'] ?>
});
来源link