我可以在通过 javascript 发布数据时设置会话变量吗?
Can i set session variables when posting data via javascript?
我创建了一个简单的 PHP 登录身份验证脚本,现在我想覆盖 post 将数据从表单发送到身份验证脚本,以便它通过 ajax 完成.
我做到了 PHP returns JSON 格式的数据 {"success":[1 OR 0],"error";"ANY ERROR MESSAGE RELATED TO SUCCESS = 0"}
,这非常有效,当我尝试使用登录表单时 returns success:1
当我序列化表单并 post 使用正确的用户名+密码将其发送到 auth 脚本时 returns success:0
以及使用不正确的原因登录,在表单 posted 到 auth 脚本的原始方法上,然后在成功登录后将 auth 脚本重定向到受保护的页面我已将其替换为 javascript 更改 window它收到成功登录后的位置,唯一的问题是似乎会话变量尚未通过此方法从 posting 设置到 auth 脚本。
有没有一种方法可以使会话变量保持不变,而无需实际定向到页面?
使用 JavaScript
创建和访问会话变量
使用 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;
}
?>
你可以这样做
<script src='javascript.php'></script>
然后在脚本中你可以写这个来访问会话变量
<?php header("Content-type: application/javascript"); ?>
$(function() {
$( "#progressbar" ).progressbar({
value: <?php echo $_SESSION['value'] ?>
});
来源link
我创建了一个简单的 PHP 登录身份验证脚本,现在我想覆盖 post 将数据从表单发送到身份验证脚本,以便它通过 ajax 完成.
我做到了 PHP returns JSON 格式的数据 {"success":[1 OR 0],"error";"ANY ERROR MESSAGE RELATED TO SUCCESS = 0"}
,这非常有效,当我尝试使用登录表单时 returns success:1
当我序列化表单并 post 使用正确的用户名+密码将其发送到 auth 脚本时 returns success:0
以及使用不正确的原因登录,在表单 posted 到 auth 脚本的原始方法上,然后在成功登录后将 auth 脚本重定向到受保护的页面我已将其替换为 javascript 更改 window它收到成功登录后的位置,唯一的问题是似乎会话变量尚未通过此方法从 posting 设置到 auth 脚本。
有没有一种方法可以使会话变量保持不变,而无需实际定向到页面?
使用 JavaScript
创建和访问会话变量使用 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;
}
?>
你可以这样做
<script src='javascript.php'></script>
然后在脚本中你可以写这个来访问会话变量
<?php header("Content-type: application/javascript"); ?>
$(function() {
$( "#progressbar" ).progressbar({
value: <?php echo $_SESSION['value'] ?>
});
来源link