ここでいくつかの質問を見ましたが、私の問題に答えてくれるものはないようです。
うまく機能する独自のカスタム MVC フレームワークを使用して Web サイトを作成しました。
これも機能する簡単なログイン コマンドがあります。電子メール アドレスとパスワードが正しい場合、顧客 ID と名前が正しく返されます。
それらが検証されたら、データを返すのではなく、いくつかのセッション変数を設定するだけです。そのため、それらがホームページに返されると (現在はセッション変数を介してログインされています)、代わりに名前とカート内のアイテムが表示されます。 「ようこそ来訪者」の。
if($record = $stmt->fetch())
{
$_SESSION["Name"] = $record["FirstName"];
$_SESSION["CustomerID"] = $record["ID"];
$_SESSION["LoginStatus"] = true;
$response->SetViewName("DefaultView"); // Login Success, back to homepage
}
else
{
$response->SetViewName("LoginView"); // Login Failure, back to login view
}
私の header.php ファイルには、対応するウェルカム メッセージを表示する html コードがあります。訪問者の場合は訪問者として表示され、そうでない場合 ($_SESSION["LoginStatus"] == true) は名前が表示され、カートの商品...
<?php
if($_SESSION["LoginStatus"] == false) // if visitor
{
echo '<p class="welcome">Welcome visitor, please <a href="Index.php?cmd=Login">log in</a> or <a href="Index.php?cmd=Register">register</a></p>';
}
else if($_SESSION["LoginStatus"] == true) // if logged in
{
echo "<p class='welcome'>Welcome back ".$_SESSION["Name"].", you have ".$_SESSION["ItemsInCart"]." items in your cart</p>";
}
?>
したがって、新しいユーザーがWebサイトにアクセスすると、セッションが開始されますが、LoginStatus変数がチェックされると、定義されていないためにエラーがスローされますが、セッションのすぐ下で定義すると、ユーザーがログを記録したときに開始されますでは、変数は常に false であり、名前やカート内のアイテムは表示されません。