事實證明,當我得到變數$_SESSION時它是空的,我不明白為什么。幾個月前它運行良好,但有一天它不再識別會話并將它們回傳為空,當我呼叫var_dump().
我session_start()在所有內容的開頭添加,并且我正確接收了 $_POST 引數,但是當我將會話變數保存在另一個頁面上時,它會丟失并且 null 到達。
如果在它運作良好之前發生這種情況的原因可能是什么?如果問題不是正確的,我很遺憾,我想知道為什么現在沒有收到它們的原因,如果之前,可以澄清我在托管。
<?php
session_start();
include "db.php";
$stmr = $con->prepare("SELECT * FROM USUARIOS WHERE NOMBRE = ? AND PASSWORD = ? ");
$usuario = $_POST["usuario"] ?: "";
$password = $_POST["password"] ?: "";
$stmr->bind_param("ss", $usuario, $password);
$stmr->execute();
$resultadoCons = $stmr->get_result();
if ($resultadoCons->num_rows > 0) {
while ($row = $resultadoCons->fetch_assoc()) {
if ($row["ID_TIPO"] == 1) {
$_SESSION["administrador"] = $usuario;
echo "administrador";
} else if ($row["ID_TIPO"] == 3) {
$_SESSION["admin"] = $usuario;
echo "admin";
} else {
$_SESSION["usuario"] = $usuario;
echo "usuario";
}
}
} else {
echo "error";
}
$con->close();
這是驗證。我正在使用 AJAX
/* Login */
$(document).ready(function() {
$('#formulario').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: 'config/validate.php',
data: $(this).serialize(),
success: function(response)
{
// var jsonData = JSON.parse(response);
if (response == "administrador")
{
location.href = 'admin.php';
}else if(response == "usuario"){
location.href = 'homeUsu.php';
}else if(response == "admin"){
location.href = 'home.php';
}
else
{
Swal.fire({
icon: 'error',
title: 'Oops...',
text: '?Sus credenciales son incorrectas,reintente!',
})
}
}
});
});
});
如果您需要更多代碼或背景關系,我會很細心,非常感謝!
uj5u.com熱心網友回復:
PHPSESSID首先檢查您的瀏覽器中是否有一個名為:的 Cookie 。
也可能是存盤會話的目錄不可寫,并且您沒有足夠的權限。在大多數情況下,它是/tmp目錄。
您可以使用以下代碼來確定您的會話目錄是否可寫:
$session_dir = session_save_path();
if (is_writable($session_dir)) {
echo 'It Is Writeable';
} else {
echo 'Not Writeable!';
}
如果得到Non Writeable,則繼續使目錄可寫或使用以下代碼更改會話保存目錄:
ini_set('session.save_path', '/path/to/your/writeable/folder')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/498248.html
下一篇:輸入并按下按鈕后執行ajax
