Я довольно новичок на этом сайте. Я долго скрывался, но никогда не задавал себе вопрос.Почему у меня есть одна страница, и только одна, которая теряет свою регистрационную сессию после посещения?
Я разрабатываю сайт, используя php, html, bootstrap css, свой собственный CSS и javascript. Страница работает так, что пользователь должен войти в систему, чтобы получить доступ. Если они не вошли в систему, они просто перенаправляются обратно на страницу входа в систему. И если они вошли в систему, им разрешено использовать веб-сайт.
Теперь у меня есть эта проблема, когда все работает нормально. Кажется, что веб-сайт несут сессию зарегистрированных пользователей, за исключением одной страницы. И я понятия не имею, почему. Все страницы ссылаются на ту же переменную сеанса
Это написано на самом верху, прежде чем что-то еще происходит.
<?php
// if session is not set this will redirect to login page
if(!isset($_SESSION['user'])) {
header("Location: index.php");
exit;
}
// select loggedin users detail
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
@$userRow=mysql_fetch_array($res);
<?
И проверить, вошел ли пользователь в систему, проводя сеанс. У меня это как первая вещь в теге body перед тем, как генерируется любой другой html.
<?php
if(!isset($_SESSION['user']))
{
header("Location: home.php".SID);
exit;
}
?>
Теперь это пример с одной из страниц, на которой сеанс фактически переносится и работает нормально. Однако странная часть заключается в том, что каждая страница создается таким образом и отлично работает, за исключением самой последней страницы. Последняя страница каким-то образом отбрасывает сеанс, и после выхода из указанной страницы вы перенаправляетесь обратно на индексную страницу. Я искал опечатки и все такое. Убедитесь, что сеанс нацелен на правильную страницу.
Все соответствующие базы данных и различные PHP-файлы включены в комплект поставки. Я сговорил их, потому что я не верю, что это проблема. Если кто-то другой может указать на возможную внешнюю проблему, я мог бы предоставить информацию о включенных файлах, таких как dbconfig и т. Д. Однако они должны быть в порядке.
Теперь, мой вопрос: почему моя последняя страница потеряла сессию?
PS: Все это работает на локальном хосте.
Редактировать: И вот весь код страницы, которая отбрасывает сеанс.
<?php
session_start();
ob_start();
require_once 'dbconnect.php';
include_once 'dbconfig.php';
// if session is not set this will redirect to login page
if(!isset($_SESSION['user'])) {
header("Location: index.php");
exit;
}
// select loggedin users detail
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
@$userRow=mysql_fetch_array($res);
?>
<!DOCTYPE html>
<html>
<head>
<title>Konsulent Info</title>
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style.css" type="text/css" />
<link rel="stylesheet" href="style2.css" type="text/css" />
<meta charset="utf-8">
</head>
<body>
<?php
if(!isset($_SESSION['user']))
{
header("Location: view.php".SID);
exit;
}
?>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://localhost/stconsulttest/home.php">ST-Consult</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="http://localhost/stconsulttest/home.php">Hjem</a></li>
<li><a href="http://localhost/stconsulttest/consult.php">Uploads</a></li>
<li><a href="http://localhost/stconsulttest/view.php">Info</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-user"></span> Bruger <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="logout.php?logout"><span class="glyphicon glyphicon-log-out"></span> Sign Out</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div id="header">
<label>Uploads</label>
</div>
<div id="body">
<?php session_start(); ?>
<?php $_SESSION['user'] = $row['userId']; ?>
<table width="80%" border="1">
<tr>
<th colspan="4">Dine CV uploads <label><a href="index.php">upload nye filer</a></label></th>
</tr>
<tr>
<td>Filnavn</td>
<td>Filtype</td>
<td>Filestørrelse (KB)</td>
<td>Se filer</td>
</tr>
<?php
$sql="SELECT * FROM tbl_cv";
$result_set=mysql_query($sql);
while($row=mysql_fetch_array($result_set))
{
?>
<tr>
<td><?php echo $row['file'] ?></td>
<td><?php echo $row['type'] ?></td>
<td><?php echo $row['size'] ?></td>
<td><a href="uploads/<?php echo $row['file'] ?>" target="_blank">Åben</a></td>
</tr>
<?php
}
?>
</table>
<br /><br />
<br /><br />
<br /><br />
<table width="80%" border="1">
<tr>
<th colspan="4">Dine reference uploads <label><a href="index.php">upload nye filer</a></label></th>
</tr>
<tr>
<td>Filnavn</td>
<td>Filtype</td>
<td>Filstørrelse (KB)</td>
<td>Se filer</td>
</tr>
<?php
$sql="SELECT * FROM tbl_referencer";
$result_set=mysql_query($sql);
while($row=mysql_fetch_array($result_set))
{
?>
<tr>
<td><?php echo $row['file'] ?></td>
<td><?php echo $row['type'] ?></td>
<td><?php echo $row['size'] ?></td>
<td><a href="uploads/<?php echo $row['file'] ?>" target="_blank">Åben</a></td>
</tr>
<?php
}
?>
</table>
<br /><br />
<table width="80%" border="1">
<tr>
<th colspan="11">Din kontakt information <label><a href="index.php">upload new contact information</a></label></th>
</tr>
<tr>
<td>Fornavn</td>
<td>Mellemnavn</td>
<td>Efternavn</td>
<td>Telefon</td>
<td>Email</td>
<td>Adresse</td>
<td>Postnummer</td>
<td>Land</td>
<td>CVR#</td>
<td>CPR#</td>
<td>LinkedIn</td>
</tr>
<?php
$sql="SELECT * FROM tbl_kontaktoplysninger";
$result_set=mysql_query($sql);
while($row=mysql_fetch_array($result_set))
{
?>
<tr>
<td><?php echo $row['Fornavn'] ?></td>
<td><?php echo $row['Mellemnavn'] ?></td>
<td><?php echo $row['Efternavn'] ?></td>
<td><?php echo $row['Telefon'] ?></td>
<td><?php echo $row['Email'] ?></td>
<td><?php echo $row['Adresse'] ?></td>
<td><?php echo $row['Postnummer'] ?></td>
<td><?php echo $row['Land'] ?></td>
<td><?php echo $row['Cvrnummer'] ?></td>
<td><?php echo $row['Cprnummer'] ?></td>
<td><a href="//<?php echo $row['LinkedIn'] ?>" target="_blank">LinkedIn</a></td>
</tr>
<br /><br />
<br /><br />
<br /><br />
<?php
}
?>
</table>
</div>
<script src="assets/jquery-1.11.3-jquery.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
</body>
</html>
<?php ob_end_flush(); ?>
Почему вы проверить дважды, и почему разные редиректы, если не вошли в систему? 'header (" Location: index.php ");' и 'header (" Location: home.php ".SID);' - нам нужно будет увидеть весь код для страницы, которая ломается, мы не можем действительно знаю, что происходит без этой информации. –
Возможный дубликат [Почему я не должен использовать функции mysql \ _ \ * в PHP?] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql -functions-in-php) –
@MasivuyeCokile, в то время как люди должны прекратить использовать расширение mysql_ *, этот вопрос касается различного поведения, казалось бы, таких же страниц, а не mysql. Фактически, тег mysql можно удалить. –