2017-02-13 47 views
-1

我在这个网站比较新。我潜伏了很长时间,但从来没有真正自问过一个问题。为什么我有一个页面,只有一个页面,访问后失去登录会话?

我正在开发一个网站使用PHP,HTML,引导CSS,我自己的CSS和JavaScript。该页面以用户必须登录才能访问的方式工作。如果他们没有登录,他们只是重定向回登录页面。如果他们登录,他们可以使用该网站。

现在,我有这个问题,一切似乎工作正常。该网站似乎将登录用户的会话正常进行,除了在一页上。我不知道为什么。所有页面调用excact相同的会话变量

这是写在顶部,在任何其他事情发生之前。

<?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); 
<? 

并检查用户是否登录,进行会话。在生成任何其他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

[为什么不应该在PHP中使用mysql \ _ \ *函数?](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql -phunctions-in-php) –

+0

@MasivuyeCokile虽然确实,人们应该停止使用mysql_ *扩展,这个问题是关于看似相同页面的不同行为,而不是mysql。实际上,mysql标签可以被删除。 –

回答

0

答案只需使用

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

体内内撒谎...

相关问题