有没有用MYSQL和JSON登录$session[]php的解决方案



当前,会话[]出现问题。

当我登录时(工作正常(。我给会话[]";事物;但是当我重新定位到另一个窗口时,然后当我想使用它从MYSQL数据库获取数据时。

登录后有什么方法可以使用SESSION[]吗?

重新定位的页面js:

betoltProfil();
function betoltProfil() {
//get data from database
var formData = new FormData();
formData.append("funkcio", "AdoIntBe");
fetch(baseUrl + "/ajax/AdomanyInterfacePHP.php", {
method: "POST",
body: formData,
})
.then(response => response.text())
.then(request => {
let szervadat = JSON.parse(request); //json data to let
console.log(szervadat); //usually gives the <Empty string> log int the browser
oldalEpit(szervadat);
})
}
function oldalEpit(adatTomb) {
console.log(asd);
}

函数php来自formData:

<?php
require_once "../app/functions.php";
session_start();
if (isset($_POST["funkcio"])) {
if ($_POST["funkcio"] == "AdoIntBe") {
if (isset($_SESSION["userId"])) {
AdoIntBe($conn, $_SESSION["userId"]);
}
// AdoIntBe($conn);
}
}

PHP的主要功能是什么应该从基于SESSION[]的MYSQL中获取数据

function AdoIntBe($conn, $userId)
{
session_start();
//the select to Database
$stmt = $conn->prepare("SELECT nev, leiras, email FROM adomanyszerv WHERE id =?");
$stmt->execute([
$userId
]);
$eredmeny = $stmt->fetch(PDO::FETCH_ASSOC);
//This should give back to formData
echo json_encode($eredmeny);
}

这是LOGIN PHP函数,我在其中声明SESSION[]。

function beEllenoriz($AEmail, $AJelszo, $conn)
{
$stmt = $conn->prepare("SELECT * from adomanyszerv where email =? and jelszo=?");
$stmt->execute([
$AEmail,
hash("sha512", $AJelszo)
]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($stmt->rowCount() == 1) {
session_start();
$_SESSION["userID"] = $row["id"];
// $_SESSION["felhasz"] = true;
echo json_encode(true);
} else {
echo json_encode(false);
false;
}
}

总之,如何使用SESSION[]来识别登录并从数据库获取数据的用户?很抱歉代码太重,很难理解!

使用session_Start((启动会话,这是脚本中始终加载的第一个操作之一。

如果始终包含main.php脚本,请在调用任何其他脚本(如function.php(之前将其放在文件顶部。这样,$_SESSION全局变量在项目中的任何地方都可以访问。

main.php

<?php
session_start();
require_once "../app/functions.php";

然后可以从函数中删除多余的session_start((。。

functions.php

<?php
function AdoIntBe($conn, $userId)
{
// ...
// session_start(); REMOVE IT because it is NOT NEEDED HERE ANY MORE
// ...
}
function beEllenoriz($AEmail, $AJelszo, $conn)
{
// ...
// session_start(); REMOVE IT because it is NOT NEEDED HERE ANY MORE
// ...
}

最新更新