Я хочу, чтобы кнопка «Вход / Регистрация» на панели навигации сменилась на «Моя учетная запись» после входа пользователя.
Файл navigation.php, который я сейчас использую для этого, выглядит следующим образом:
<?php
session_start();
include("check.php");
?><?php
if ($_SESSION['username']){ ?>
<div id="nav">
<ul >
<li class="navbar-left"><a href="artikelen.html">Men</a></li>
<li class="navbar-left"><a href="artikelen.html">Women</a></li>
<li class="navbar-left"><a href="artikelen.html">Kids</a></li>
<li class="navbar-right"><a href="view_cart.php">Cart (0)</a></li>
<li class="navbar-right"><a href="inlog.php">My Account</a></li>
</ul>
</div>
<?php } else { ?>
<div id="nav">
<ul >
<li class="navbar-left"><a href="artikelen.html">Men</a></li>
<li class="navbar-left"><a href="artikelen.html">Women</a></li>
<li class="navbar-left"><a href="artikelen.html">Kids</a></li>
<li class="navbar-right"><a href="view_cart.php">Cart (0)</a></li>
<li class="navbar-right"><a href="inlog.php">Login / Sign Up</a></li>
</ul>
</div>
<?php }
?>
Файл check.php выглядит так:
<?php
include('connection.php');
session_start();
$user_check=$_SESSION['username'];
$ses_sql = mysqli_query($db,"SELECT username FROM users WHERE username='$user_check' ");
$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$login_user=$row['username'];
if(!isset($user_check))
{
header("Location: index.php");
}
?>
Если я перехожу на веб-страницу с этой панелью навигации, я получаю следующую ошибку:
Эта веб-страница имеет цикл перенаправления ERR_TOO_MANY_REDIRECTS
Может кто-нибудь, пожалуйста, помогите мне?
Обновите ваш check.php примерно так.
$user_check = (isset($_SESSION['username']) && trim($_SESSION['username'])!='')?trim($_SESSION['username']):false;
if(!$user_check) header("Location: index.php");
else{
$ses_sql = mysqli_query($db,"SELECT username FROM users WHERE username='$user_check' ");
$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$$_SESSION['username']=$row['username'];
}
Удалите заголовок Location в check.php. Вы можете установить заголовок местоположения после отображения формы входа
Попробуй это
navigation.php
<?php
include("check.php");
?><?php
if ($loginst == 1){ ?>
<div id="nav">
<ul >
<li class="navbar-left"><a href="artikelen.html">Men</a></li>
<li class="navbar-left"><a href="artikelen.html">Women</a></li>
<li class="navbar-left"><a href="artikelen.html">Kids</a></li>
<li class="navbar-right"><a href="view_cart.php">Cart (0)</a></li>
<li class="navbar-right"><a href="inlog.php">My Account</a></li>
</ul>
</div>
<?php } else { ?>
<div id="nav">
<ul >
<li class="navbar-left"><a href="artikelen.html">Men</a></li>
<li class="navbar-left"><a href="artikelen.html">Women</a></li>
<li class="navbar-left"><a href="artikelen.html">Kids</a></li>
<li class="navbar-right"><a href="view_cart.php">Cart (0)</a></li>
<li class="navbar-right"><a href="inlog.php">Login / Sign Up</a></li>
</ul>
</div>
<?php } ?>
check.php
<?php
include('connection.php');
session_start();
$loginst = 0;
if ($_SESSION['username']){
$user_check = $_SESSION['username'];
$ses_sql = mysqli_query($db,"SELECT username FROM users WHERE username='$user_check' ");
$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$login_user=$row['username'];
if(!empty($login_user))
{
$loginst = 1;
}
}
?>