我在 PHP 中的会话有一些问题。以前,我有一个网站,而不是我正在改进布局。我认为这很容易,但很多事情都改变了。例如:在我声明一个类似的变量$Variable = $_SESSION['test'];
并且工作正常之前,即使没有带有 issets 的条件。现在,它说没有声明变量。
好吧,这只是为了提供信息。我的问题是登录会话。我正在尝试创建一个函数来验证用户是否已登录(如果没有,用户将是“匿名的”。
这是使用户登录的 .php 文件。它适用于 JQuery 脚本,只是为了不刷新页面。
<?php
session_start();
include_once ($_SERVER['DOCUMENT_ROOT'] . '/inclusoes/Conexao.php');
include_once ($_SERVER['DOCUMENT_ROOT'] . '/classes/Funcoes.php');
$Funcoes = new Funcoes();
$Login = $_POST['dado_login'];
$Senha = $_POST['dado_senha'];
$Mensagem = array();
if (empty($_POST['dado_login']))
$Mensagem[] = "<img src='../imgs/Error.png'><span style='color: red; font-weight: bold;'> Please, enter username.</span>";
elseif (empty($_POST['dado_senha']))
$Mensagem[] = "<img src='../imgs/Error.png'><span style='color: red; font-weight: bold;'> Please, enter password.</span>";
$countError = count($Mensagem);
if($countError > 0)
{
for($i=0;$i<$countError;$i++)
/*echo ucwords($Mensagem[$i]) . ' ';*/
echo $Mensagem[$i];
}
else
{
$Query = "SELECT id_usuario, nick, senha FROM usuarios WHERE nick = '$Login' && senha = '$Senha'";
// $LoginCorreto = mysql_query($Query, $conexao) or die (mysql_error());
$LoginCorreto = $Funcoes->MySQLError($Query, $conexao);
$ChecarUsuario = mysql_num_rows($LoginCorreto);
if ($ChecarUsuario > 0)
{
$_SESSION["sessionUsuario"] = $Login;
echo 'Correct';
}
else
{
echo "<img src='../imgs/Error.png'><span style='color: red; font-weight: bold;'> Login failed. Please, try again.</span>";
}
}
?>
这里是函数,很简单。
function isLogado()
{
if (!isset($_SESSION['usuarioSession']))
return false;
else
return true;
}
这就是我正在做的
include ('functions.php');
$Funcoes = new Funcoes();
if (!$Funcoes->isLogado)
*show the login form*
else
*welcome, User!*
会话始终为空,或未设置。如果您“回显”会话,它将不会显示任何内容。在我只是写作之前$Variable = $_SESSION['test']
没有发生错误,从来没有。
如何解决?先谢谢了。