2017-02-13 4 views
-1

Ich bin ziemlich neu auf dieser Seite. Ich lauere schon lange, habe aber nie selbst eine Frage gestellt.Wie kommt es, dass ich EINE Seite habe und nur diese, die nach dem Besuch ihre Login-Sitzung verliert?

Ich entwickle eine Website mit PHP, HTML, Bootstrap CSS, meine eigene CSS und Javascript. Die Seite funktioniert so, dass sich ein Benutzer anmelden muss, um Zugang zu erhalten. Wenn sie nicht eingeloggt sind, werden sie einfach auf die Anmeldeseite umgeleitet. Und wenn sie eingeloggt sind, dürfen sie die Website benutzen.

Jetzt habe ich dieses ein Problem, wo alles scheint gut zu funktionieren. Die Website scheint die Sitzung eingeloggter Benutzer in Ordnung zu halten, außer auf einer Seite. Und ich habe keine Ahnung warum. Alle Seiten rufen die gleiche Sitzung Variable

Dies ist ganz oben geschrieben, bevor etwas anderes passiert.

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

Und um zu überprüfen, ob der Benutzer angemeldet ist, trägt die Sitzung. Ich habe dies als erstes in meinem Body-Tag, bevor ein anderer HTML-Code generiert wird.

<?php 
    if(!isset($_SESSION['user'])) 
    { 
     header("Location: home.php".SID); 
     exit; 
    } 
?> 

Jetzt ist dies ein Beispiel von einer der Seiten, wo die Sitzung tatsächlich übernommen und funktioniert gut. Der komische Teil ist jedoch, dass jede Seite auf diese Weise aufgebaut ist und funktioniert, bis auf die allerletzte Seite. Auf der letzten Seite wird die Sitzung abgebrochen und Sie werden nach Verlassen der Seite zur Indexseite weitergeleitet. Ich habe nach Tippfehlern und allem Ausschau gehalten. Sicherstellen, dass die Sitzung auf die richtige Seite ausgerichtet ist.

Alle entsprechenden Datenbanken und verschiedene PHP-Dateien sind in Ordnung. Ich habe sie bewusst übergangen, weil ich nicht glaube, dass sie das Problem sind. Wenn jemand anderes darauf hinweist, dass das Problem möglicherweise extern ist, könnte ich Informationen zu den enthaltenen Dateien wie dbconfig usw. bereitstellen. Sie sollten jedoch in Ordnung sein.

Jetzt ist meine Frage, warum zum Teufel macht meine letzte Seite die Sitzung verlieren?

PS: All dies läuft auf localhost.

Bearbeiten: Und hier ist der gesamte Code für die Seite, die die Sitzung ablegt. in zweimal und warum verschiedene Umleitungen, wenn nicht angemeldet

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

Warum Sie überprüfen? 'header (" Location: index.php ");' und 'header (" Location: home.php ".SID);' - Wir müssten den ganzen Code für die Seite sehen, die bricht, wir können nicht wirklich wissen, was ohne diese Informationen passiert –

+0

Mögliche Duplikate von [Warum sollte ich nicht mysql \ _ \ * Funktionen in PHP verwenden?] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql -funktions-in-php) –

+0

@MasivuyeCokile während in der Tat, Menschen sollten aufhören zu verwenden mysql_ * Erweiterung, diese Frage ist über unterschiedliche Verhalten von scheinbar gleichen Seiten, nicht mysql. in der Tat könnte das mysql-Tag entfernt werden. –

Antwort

0

Die Antwort einfach in der Verwendung von

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

im Körper ...

Verwandte Themen