Antworten auf deine Fragen:
Neues Thema erstellen

Problem - Inhalt nur sichtbar für eingeloggte User

rocksart

Noch nicht viel geschrieben

Ich hab ein funktionierendes Login-Script mit Registrieren, alles gut soweit.
Dann hab ich eine Seite erstellt, deren Inhalt man nur sehen kann, wenn man eingeloggt ist. Dafür benutze ich
PHP:
<?php
session_start();
?>

<?php
if(!isset($_SESSION["username"]))
   {
   echo "Bitte erst <a href=\"index.php?page=login\">einloggen</a>";
   exit;
   }
?> 

<p>Geheimer Inhalt. <a href="index.php?page=logout">Log out</a></p>
Der Code überprüft, ob die Session-Variable "username" bereits registiert wurde, wenn ja, dann kann man den Inhalt der Seite sehen, (in diesem Fall "Geheimer Inhalt. Log out")
Das klappt alles wunderbar, aber leider wird der footer der Seite ebenfalls ausgeblendet und wird erst sichtbar wenn man sich halt eingeloggt hat..
Ich denke mal, irgendwas an meiner Struktur in der index.php ist falsch, aber ich weiß einfach nicht was.
PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titel</title>
<style type="text/css">
body {
    font: 80%/1.1 Verdana, Arial, Helvetica, sans-serif;
    background-image: url(img/bg.png);
    margin: 0;
    padding: 0;
    color: #000;
}


ul, ol, dl { 
    padding: 0;
    margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
    margin-top: 0;     
    padding-right: 15px;
    padding-left: 15px; 
}
a img { 
    border: none;
}


a:link {
    color: #142b33;
    text-decoration: underline; 
}
a:visited {
    color: #142b33;
    text-decoration: underline;
}
a:hover, a:active, a:focus { 
    text-decoration: none;
}


#container {
    width: 960px;
    background-image:url(img/pattern.png);
    border:1px solid #001b44 -moz-border-radius:10px;
    margin: 0 auto; 
    margin-bottom:20px;
    margin-top:20px;
}

#header {
    background: #ADB96E;
}


#sidebar1 {
    float: left;
    width: 199px;
    background-image:url(img/pattern2.png);
    padding-bottom: 10px;
    border-right:1px solid #c3c3c3;
    border-bottom:1px solid #c3c3c3;
}
#content {
    padding: 10px 0;
    width: 758px;
    float: left;
    background-image:url(img/pattern.png);
    margin-left: 2px;
}


#content ul, .content ol { 
    padding: 0 15px 15px 40px; 
}


ul.nav {
    list-style: none; 
    border-top: 1px solid #666;
    border-right: 1px solid #666; 
    margin-bottom: 15px; 
}
ul.nav li {
    border-bottom: 1px solid #666;
    border-right: 1px solid #666; 
}
ul.nav a, ul.nav a:visited { 
    padding: 5px 5px 5px 15px;
    display: block; 
    width: 180px;  
    text-decoration: none;
    background-image:url(img/link.png);
    border-right: 1px solid #666;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus { 
    background-image:url(img/linkhover.png);
    text-transform:lowercase;
    color: #FFF;
}


#footer {
    height:140px;
    padding: 10px 0;
    position: relative;
    clear: both; 
}


.fltrt {  
    float: right;
    margin-left: 8px;
}
.fltlft { 
    float: left;
    margin-right: 8px;
}
.clearfloat { 
    clear:both;
    height:0;
    font-size: 1px;
    line-height: 0px;
}
-->
</style></head>

<body>

<div id="container">
  <div id="header"><?php include("header.php"); ?>
    <!-- end #header --></div>
  <div id="sidebar1">
    <?php include("nav.php"); ?>
    <!-- end #sidebar1 --></div>
  <div id="content">
    <?php

$sites['home'] = 'home.php';
$sites['about'] = 'about.php';
$sites['products'] = 'products.php';
$sites['login'] = 'login.html';
$sites['eintragen'] = 'eintragen.html';
$sites['login2'] = 'login.php';
$sites['eintragen2'] = 'eintragen.php';
$sites['logout'] = 'logout.php';

if(isset($_GET['page']) && isset($sites[$_GET['page']])) {
    include $sites[$_GET['page']];
} else {
    include 'home.php';
}

?>
    <!-- end #content --></div>
   <div id="footer"><?php include("footer.php"); ?><!-- end footer --></div>
    <!-- end #container --></div>
    
</body>
</html>
Irgendein Lösungsvorschlag? :/

(Bilder zur visuellen Vorstellung:

)
 
Zuletzt bearbeitet:

Robbyn-

PHP / Flex Programmierer

AW: Problem - Inhalt nur sichtbar für eingeloggte User

Nach "Bitte erst einloggen" machst du ein exit(). Das heißt das dass Script in jeder hinsicht stoppen soll. Wenn du mal das exit() weg nehmen würdest, würdest du auch erkennen das dein footer geladen würde.
 

vincitore

Aktives Mitglied

AW: Problem - Inhalt nur sichtbar für eingeloggte User

mach halt einfach if () {} mit einem else {} oder elseif ()*{} Teil und pack da deinen "Geheimen Inhalt" rein.

Und halt wie schon gesagt das exit() weg
 

rilight

Noch nicht viel geschrieben

AW: Problem - Inhalt nur sichtbar für eingeloggte User

Man kann bei solchen Seiten auch ein Gerüst festlegen und dort dann z.B. eine Variable reinpacken:


PHP:
<?php

$variable = '';

if([deineBedingung - also z.B. Session])
{
    $variable = 'Inhalt für geheim';
}
else
{
    $variable = 'Inhalt für nicht geheim';
}

$meinQuelltext = <<<QUELLTEXT
<html>
    <head>
        <title></title>
    </head>
    <body>

    $variable

    </body>
</html>
QUELLTEXT;

echo $quelltext

?>

Vielleicht hilft dir das ein wenig.

rilight
 

rocksart

Noch nicht viel geschrieben

AW: Problem - Inhalt nur sichtbar für eingeloggte User

PHP:
$meinQuelltext = <<<QUELLTEXT
<html>
    <head>
        <title></title>
    </head>
    <body>

    $variable

    </body>
</html>
QUELLTEXT;

echo $quelltext

?>

Den Part versteh ich nicht ganz.
Danke für die Hilfe schonmal!
</span></span>
 

Duddle

Posting-Frequenz: 14µHz

AW: Problem - Inhalt nur sichtbar für eingeloggte User

Das ist ein sogenanntes Heredoc. Es ist lediglich eine komfortablere Möglichkeit, große Texte zu definieren (und in diesem Fall einer Variable zuzweisen). Obiges Beispiel ist äquivalent zu:
PHP:
$quelltext = "<html>";
$quelltext .= "  <head>";
//usw
$quelltext .= "</html>";
echo $quelltext;


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.476
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben