これはclass.user.phpのlogin()関数とis_logged_in()関数です。 私はlogin()関数で行ったセッションを返すためにis_logged_in()を使用します。ユーザがログインしている場合、ログインボタンをログアウトに変更したい。
public function login($email,$upass) //
{
try
{
$stmt = $this->conn->prepare("SELECT * FROM pelanggan WHERE email_pel=:email_id");
$stmt->execute(array(":email_id"=>$email));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)
{
if($userRow['status_pel']=="Y")
{
if($userRow['pass_pel']==md5($upass))
{
$_SESSION['userSession'] = $userRow['id_pel'];
return true;
}
else
{
header("Location: login.php?error");
exit;
}
}
else
{
header("Location: login.php?inactive");
exit;
}
}
else
{
header("Location: login.php?error");
exit;
}
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
public function is_logged_in()
{
if(isset($_SESSION['userSession']))
{
return true;
}
}
login.php
<?php
session_start();
require_once 'class.user.php';
$user_login = new USER();
if($user_login->is_logged_in()!="")
{
$user_login->redirect('index.php?modul=login');
}
if(isset($_POST['btn-signin']))
{
$email = trim($_POST['email_log']);
$upass = trim($_POST['password_log']);
if($user_login->login($email,$upass))
{
$user_login->redirect('index.php?modul=login');
}
}
?>
で
そして、私はこのようなボタンを変更するis_logged_in()関数を使用しますが、それはうまくいきませんでした。私は他の条件を使いましたが、それでもうまくいきませんでした。両方のボタンは表示されず、そのうちの1つだけが表示されました。
<div class="btnmasuk span1">
<?php
require_once 'class.user.php';
$user_login = new USER();
if(!$user_login->is_logged_in()){ // I use false condition
echo '<a href="logout.php"><button class="btn btn-danger">Keluar</button></a>';
}else{
echo '<a href="login.php"><button class="btn btn-primary">Masuk</button></a>';
}
?>
</div>
どうすればこの問題を解決できますか?私の壊れた英語のために申し訳ありません。ユーザがログインしている場合
ログイン時に 'SESSION'を作成する必要があります。このセッションが設定されていない場合は、ユーザが 'SESSION ['logged_in'] == true'(例えば)の場合にログインボタンが表示されます。 'if else'を使うだけです。あなたは私に知らせるだけの例が必要な場合。 –
私は例が必要です、あなたは私のコードに基づいて例を与えることができますか?申し訳ありませんが、私はまだ自分のコードに実装することを理解しています。 – VTaehyung
私はあなたのための例を書いた。私に知らせてください –