我在这里和其他地方阅读了很多关于这个问题的文章,但没有找到可以帮助我的答案。而且由于主题似乎相当广泛,我认为最好的方法是询问。
我目前正在通过 jquery 文件中的 $.post-script 将表单中的登录数据发送到 php 脚本。那里没有问题。我有一个类通过一系列函数来验证和保护字符串,所以完全没有问题。我一直在设置会话,我可以通过将函数(数据)添加到我的 $.post 来打印并获取它。
我已将 session_start() 添加到 php 脚本和 index.php 中。我正在使用 Chromium 并且可以看到已设置会话,但是当我进行 print_r($_SESSION); 结果是空的。显然,这也导致我的 if(isset($_SESSION['uid'])) 也不起作用。
js:
$('#login').submit(function(e){
e.preventDefault();
values = {};
var url = '../admin/php/signIn.php';
console.log('Clicked on submit.');
$.each($(this).serializeArray(), function(i, field){
values[field.name] = field.value;
});
$.post(url, {username: values.username, password: values.password})
.done(function(data){ location.reload(); /*alert(data);*/ })
.fail(function(){ alert('Fail.'); });
});
php:
private function login($uid, $uname){
$_SESSION['uid'] = $uid;
echo $_SESSION['username'] = $uname;
session_start();
}
我在其中一个会话上添加了一个回声,只是为了能够通过 jquery 看到它。是“私人功能[...]”还是其他地方的问题?(就像我之前所说的那样,与班级一起玩。)
我希望这对某人有意义,因为我在这里迷路了。