数日前にこの作業をしましたが、ユーザーがアカウントにサインインするとセッションIDが画面に表示されないようです。私は私が取り組んできた2つのPHPを持っています。私はチェッカーを使ってエラーをチェックしました。下の内容では、ユーザーがサインインすると、サイトのヘッダー内にセッションIDが表示されますが、正しくログインしていても(自分のデータベースにログインしていることを確認したにもかかわらず)あなたはログインしていません! "PHP - ユーザーがサインインした後に情報を表示する際の問題
Login.inc.php
<?php
include '../dbh.php';
$email = $_POST['email'];
$pwd = $_POST['pwd'];
$sql = "SELECT * FROM user WHERE email='$email' AND pwd='$pwd'";
$result = mysqli_query($conn, $sql);
if (!$row = mysqli_fetch_assoc($result)) {
echo "You are not signed in!";
} else {
$_SESSION['id'] = $row['id'];
}
header("Location: ../index.php");
?>
site_header.phpは
<head>
<?php
session_start();
?>
<link rel="stylesheet" type="text/css" href="vendors/css/normalize.css">
<link rel="stylesheet" type="text/css" href="vendors/css/grid.css">
<link rel="stylesheet" type="text/css" href="vendors/css/ionicons.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<link href="https://fonts.googleapis.com/css?family=Lato:400,300,100,300,200italic" rel="stylesheet" type="text/css">
<title>iBPBuyer</title>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="index.php">HOME</a></li>
<li><a href="signup.php">SIGN UP</a></li>
<?php
echo "<form action='includes/login.inc.php' method='POST'>
<input type='email' name='email' placeholder='E-Mail'>
<input type='password' name='pwd' placeholder='Password'>
<button type='submit'>Login</button>
</form>";
?>
<?php
if(isset($_SESSION['id'])) {
echo $_SESSION['id'];
} else {
echo "You are not logged in!";
}
?>
</ul>
</nav>
</header>
は 'にsession_startを入れて行うことができ、認証済みフラグ
を使用することをお勧めします()' PHPスクリプト –
@Ayaouの初めに、私は誤ってそれをカット投稿したコードスクリプトのうち、site_header.phpファイルの上にある –
@BenParryログインしていますか? – nerdlyist