gpt4 book ai didi

php - 如何在jquery中获取PHP $_SESSION数组的值?

转载 作者:行者123 更新时间:2023-11-28 11:59:57 25 4
gpt4 key购买 nike

我不知道是否有更好的方法来做到这一点,但我使用这种方式(告诉我我是否错了)我想做一些JavaScript来在用户登录时显示一些内容,并在用户登录时隐藏该内容用户未登录。但执行登录凭据检查的函数是用 PHP 编写的:

function login()
{
$username = $_POST['username'];
$password = md5($_POST['password']);
$url = $_POST['url'];
$users = $GLOBALS['db']->query("SELECT * FROM users WHERE username='$username' AND password='$password'") or $GLOBALS['db']->raise_error(); // Leaving 'raise_error()' blank will create an error message with the SQL
$users_number = $GLOBALS['db']->num_rows($users);
if(!empty($users_number))
{
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['is_logged'] = 'yes';
header('Location:?'.$url);
}

}

我试图在 JavaScript 中获取并检查 $_SESSION['is_logged'] 的值,但我无法通过 jquery 或 javaScript 传递或读取该值

js文件:

$(".link_to_comment a").live('click',function(){
//if you are not logged in you will see a log in box (with a link to register if you are not)
if(session == 'no')
{
$("#forum").html("<form name='login_form' action='?page=functions.php&fun=login' method='post'><table><tr><td>Username:</td><td><input type='text' name='username'></td><td>error</td></tr><tr><td>Password:</td><td><input type='password' name='password'></td><td>error</td></tr><tr><td></td><td><input type='submit'></td><td>error</td></tr><tr><td></td><td><input type='hidden' name='url' value="+url+"></td><td></td></tr></table>");
}
//if you are logged in you will add your comment here
else if(session == 'yes')
{
$("#forum").find(".make_a_comment").show();
$("#forum").find(".link_to_comment").hide();
}
});

js 文件中的 session 变量应该包含 $_SESSION['is_logged'] 但这怎么是我的问题???

最佳答案

您可以将变量输出为 <script>在页面本身内,在全局范围内。这将使任何外部 Javascript 文件能够访问该变量:

<script>
var loggedIn = <?php echo isset($_SESSION['is_logged']) && $_SESSION['is_logged'] == 'yes' ? 'true' : 'false'; ?>;
</script>

这将输出 var loggedIn = true;var loggedIn = false;取决于 session 变量。

现在,在任何其他 Javascript 中,您可以检查变量:

            if(loggedIn == false)
{
$("#forum").html("<form name='login_form' action='?page=functions.php&fun=login' method='post'><table><tr><td>Username:</td><td><input type='text' name='username'></td><td>error</td></tr><tr><td>Password:</td><td><input type='password' name='password'></td><td>error</td></tr><tr><td></td><td><input type='submit'></td><td>error</td></tr><tr><td></td><td><input type='hidden' name='url' value="+url+"></td><td></td></tr></table>");
}

请记住,您需要在任何其他 Javascript 之前输出该变量,否则在其他脚本尝试访问该变量之前该变量可能不存在。

关于php - 如何在jquery中获取PHP $_SESSION数组的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com