1

我在 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']没有发生错误,从来没有。

如何解决?先谢谢了。

4

0 回答 0