我在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']
并且没有发生错误之前,从来没有。
如何解决?谢谢你提前。