2017-02-13 86 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']; ?> 

體內內撒謊...

相關問題