私のウェブサイトでは、ログイン後、セッションは設定されていますが、ホームディレクトリのファイルでは機能していませんが、/ adminなどの他のディレクトリでは機能しています。
たぶん私のrobots.txtファイルのいくつかの問題です。これはrobots.txtファイルのコードです-
User-agent: *
Disallow: /cgi-bin/
Disallow: /admin/
Disallow: /*?*
ナビゲーションバーのコード-
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href=""><?php echo website_name; ?></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item ">
<a class="nav-link" href="<?php echo location; ?>">Home </a>
</li>
<li class="nav-item ">
<a class="nav-link" href="dashboard.php">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link " href="about-us.php" >About Us</a>
</li>
<li class="nav-item">
<a class="nav-link " href="contact-feedback.php" >Contact Us / Feedback</a>
</li>
<li class="nav-item">
<a class="nav-link " href="privacy-policy.php" >Privacy Policy</a>
</li>
<?php
session_start();
if (isset($_SESSION['loggined'])){
echo '<li class="nav-item">
<a class="nav-link " href="wins.php">My Wins</a>
</li>';
}
?>
<?php
if (isset($_SESSION['admin'])) {
echo '
<li class="nav-item">
<a class="nav-link " href="admin/Web_ManageMent" >Admin Panel</a>
</li>
';
}
?>
</ul>
<?php
if (!isset($_SESSION['loggined']) ) {
echo '
<div class="row">
<button class="btn btn-sm btn-primary mx-3 my-2" data-toggle="modal" data-target="#loginModal" id="loginBtn">Login</button>
<button id="signupBtn" class="btn btn-sm btn-primary my-2" data-toggle="modal" data-target="#signupModal" >Sign Up
</button>
</div>
';
} else {
echo '
<hr>
<span class="text-white">Welcome , '.$_SESSION['name'].'</span>
<br>
<button class="btn btn-sm btn-primary mx-3 my-2"><a class="text-white" href="registration/logout.php">Log Out</a></button>
';
}
?>
</div>
</nav>
<?php
include("modals/signup.php");
include("modals/login.php");
?>
login.phpでセッションを設定している場所
$_SESSION["loggined"] = true;
$_SESSION["username"] = $username;
$_SESSION["name"] = $row['display_name'];
$_SESSION['id'] = $row['user_id'];
header("location: dashboard.php");
ホームディレクトリのファイル内のナビゲーションバー-ナビゲーションバー
そのため、セッションはホームディレクトリで機能していません
あなたのrobots.txt
ファイルはPHPとはまったく関係がありません。それは純粋に、どのファイルにインデックスを付けるかを倫理的なロボットに伝える方法にあります。
PHPでセッションが「機能しない」場合の通常の問題session_start();
は、呼び出されないことが原因です。
機能していないページの上部に次のコードを追加してください。
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
正直なところ?入力してから11年以上になりますsession_start()
。どうして?なぜなら、2021年にこれをPHPで裸でコーディングしている場合、信じられないほど間違ったことをしているからです。
Laravelや最新のフレームワークを学んでください。あなた、あなたのプロジェクト、あなたの同僚、世界は、すべてより良くなるでしょう。
私は毎日PHPをコーディングしていますが$_SESSION[]
、おそらく2010年以来、文字通り直接混乱することはありません。JavaScriptで行うようなものdocument.getElementById('foo');
です。それもしないでください;-)
PSlocalStorage.getItem('key')
認証システムとしてJWTトークン(tymon / jwt-auth)を使用して、フロントエンドAJAXに依存して状態を格納するステートレスPHPアプリの設計方法を学ぶことを検討してください。
実際、この5年間、私たち全員がこのように取り組んできました。
この記事を読んでください:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加