2017-02-13 2 views
-1

Я довольно новичок на этом сайте. Я долго скрывался, но никогда не задавал себе вопрос.Почему у меня есть одна страница, и только одна, которая теряет свою регистрационную сессию после посещения?

Я разрабатываю сайт, используя 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>&nbsp;Bruger&nbsp;<span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
       <li><a href="logout.php?logout"><span class="glyphicon glyphicon-log-out"></span>&nbsp;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(); ?> 
+2

Почему вы проверить дважды, и почему разные редиректы, если не вошли в систему? 'header (" Location: index.php ");' и 'header (" Location: home.php ".SID);' - нам нужно будет увидеть весь код для страницы, которая ломается, мы не можем действительно знаю, что происходит без этой информации. –

+0

Возможный дубликат [Почему я не должен использовать функции mysql \ _ \ * в PHP?] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql -functions-in-php) –

+0

@MasivuyeCokile, в то время как люди должны прекратить использовать расширение mysql_ *, этот вопрос касается различного поведения, казалось бы, таких же страниц, а не mysql. Фактически, тег mysql можно удалить. –

ответ

0

Ответ просто лгал в использовании

<?php session_start(); ?> 
<?php $_SESSION['user'] = $row['userId']; ?> 

в теле ...

Смежные вопросы