gpt4 book ai didi

php - 无法将 PHP session 变量返回到 JQuery

转载 作者:行者123 更新时间:2023-12-01 03:59:34 25 4
gpt4 key购买 nike

我知道有很多关于从 JQuery 设置 PHP session 然后将其返回到 JQuery 的问题。我已经查看了所有这些,但仍然无法弄清楚为什么我的代码不起作用。我试图使用模式在后端 PHP 页面上设置 PHP session 变量,然后使用 jquery 在另一个模式中显示它,但没有返回任何内容。

这是我的发送模式:

<div id="sendingModal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<div class="modal-body">
<button id="testSession" type="button" class="btn btn-secondary">Session Test</button>
</div>
</div>
</div>

这是我的后端 php:

<?php
session_start();
$_SESSION['testInput'] = $_POST['inputData'];
?>

这是我的接收模式:

<div id="receivingModal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<div class="modal-body">
<div id="testDiv"></div>
</div>
</div>
</div>

这是我的 JQuery:

$(document).ready(function() {
$('#testSession').on('click',function(e){
var testData = 'testing 123';
$.post("backendSession.php", {"inputData": testData});
$('#testSession').html(<?=$_SESSION['testInput']?>);
$('#testModal').modal('show');
});
});

我做错了什么?

最佳答案

您这里只有一个小问题,并且根据您提供的代码进行了简单的修复。您必须在 ajax 调用期间返回新数据,否则您将无法使用它(直到整个新页面刷新)。

首先,添加到您的backendSession.php:

<?php
session_start();
$_SESSION['testInput'] = $_POST['inputData'];
echo htmlspecialchars( $_SESSION['testInput'] );// new bit
?>

然后调整您的 .post 用法,如下所示:

$(document).ready(function() {
$('#testSession').on('click',function(e){
var testData = 'testing 123';
$.post("backendSession.php",
{"inputData": testData},
function( rawdata ) { // add return handler callback
$('#testDiv').html( rawdata ); // use the return data
$('#testModal').modal('show'); // show the modal
}
);
});
});

现在这是实现您想做的事情的基本更改。但是,如果您计划需要的不仅仅是输入的回显,您将来可能希望处理 JSON 返回数据。不过,举一个例子就超出了问题的范围;)

另一方面:您可能需要清理该帖子输入。我知道您提供的只是一个最小的示例,但我只是想提一下。因为简单地将原始用户输入回显到页面中,就可以打开一些 XSS 攻击向量。

关于php - 无法将 PHP session 变量返回到 JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51561471/

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