HTML
<div pid="14" class="buybutton">Buy</div>
的Javascript
<script>
$(document).ready(function() {
$(".buybutton").click(function(){
console.log("Clicked Button");
var pid = $(this).attr("pid");
console.log(pid,"= Product ID");
$.post("/redirecttoproduct.php", {"pidofproduct": pid});
});
});
</script>
控制台:
Clicked Button
14 = Product ID
redirecttoproduct.php
<?php
session_start();
$_SESSION['redirectproductpid'] = $_POST['pidofproduct'];
?>
试图回应SESSION,没有任何显示
<?php
$productpid = $_SESSION['redirectproductpid'];
echo $productpid;
?>
没有出现任何想法?
答案 0 :(得分:0)
您错过了此页面中的session_start();
吗?使用session_start()
时需要$_SESSION
。
<?php
session_start();
$productpid = $_SESSION['redirectproductpid'];
echo $productpid;
?>
答案 1 :(得分:0)
我建议首先做一个回调函数来检查post请求是否成功提交,因为你的$ _SESSION变量没有返回任何值的原因之一是因为你的js代码没有发布任何值结果,没有数据被分配给你的$ _SESSION var,即:
$.post("/redirecttoproduct.php", {"pidofproduct": pid})
.done(function() {alert( "success" );})
.fail(function() {alert( "error" );});
如果您可以为您的$ .post请求提供绝对路径,例如您的网站目录,即:$.post("//yourwebsite.com/redirecttoproduct.php")
可以显着避免此相对路径错误,那么会更方便确保你没有提交无法通过你的XSS过滤器的无效值(如果有的话),希望这会有所帮助,欢呼!