PHP のセッションで問題が発生しています。以前はウェブサイトを持っていましたが、レイアウトを改善していません。簡単だと思っていましたが、多くのことが変わりました。$Variable = $_SESSION['test'];
例: 以前は、isset の条件がなくても、変数 like を宣言し、完全に機能していました。現在、変数は宣言されていません。
まあ、これは単なる情報です。私の問題はログインセッションにあります。ユーザーがログインしているかどうかを確認する機能を作成しようとしています(そうでない場合、ユーザーは「匿名」になります。
これは、ユーザーをログに記録する .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']
で、エラーが発生する前は、決してありませんでした。
それを解決する方法は?ありがとうございます。