私はこの問題に関して、私を助けることができる答えを見つけることなく、ここと他の場所の両方でたくさんの記事を読みました。そして、主題はかなり広いように思われるので、私は最善の方法は尋ねることだと思います。
現在、jqueryファイルの$.post-scriptを介してフォームからphp-scriptにログインデータを送信しています。そこに問題はありません。文字列を検証して保護するために関数のチェーンをウォークスルーするクラスがあるので、まったく問題はありません。$ .postにfunction(data)を追加することで、セッションを印刷して取得できます。
php-scriptとindex.phpの両方にsession_start()を追加しました。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で確認できるように、セッションの1つにエコーを追加しました。「プライベート機能[...]」、または他の場所に問題がありますか?(前に言ったように、クラスで遊んでいます。)
私はここでかなり迷っているので、これが誰かにとって理にかなっていることを願っています。