Login und Menü Bereich

max001

Grünschnabel
Guten Morgen,

ich habe folgendes Problem und zwar möchte ich, dass die Menü-Links erst nach vorherigen Login möglich sind.
Zur Zeit wird mir aber beim Aufrufen der Seite immer sofort das komplette Menü angezeigt und die Login-Box im Start bereich kann mir jemand vielleicht helfen?

Hier mein Code

index.html
HTML:
?php
session_start();

include("includes/db_connect.inc");
include("login.inc.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strickt//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd!>
<html xmlns="http://www.e3.org/19999/xhtml" xml:lang="en" lang="en">

<head>
<title> Informationssystem </title>
<link href="css/styles.css" rel="stylesheet"  type="text/css">   
</head>

<body>

<div id='header'>
</div>

<div id='logo'>
<img src="css/images/logo.png">
</div>

<div id='menu'>
<ul>

<?
    if($_SESSION['angemeldet'] == true){
?>
<li>			<a href="index.html?site=start">		<span>	Start	</span>		</a>	</li>
<li>			<a href="index.html?site=suche">		<span>	Suche	</span>		</a>	</li>
<li>			<a href="index.html?site=kunden">		<span>	Kunden	</span>		</a>	</li>
<li>			<a href="index.html?site=dokumente">	<span>	Dukomente</span>	</a>	</li>
<li>			<a href="index.html?site=logout">		<span>	Logout	</span>		</a>	</li>

<?
    }
?>

</ul>
</div>

<div id='main'>

<?
    if($_SESSION['angemeldet'] == true) {

    $site = array();
	$site['start'] = "start.inc.php";
	$site['suche'] = "suche.inc.php";
	$site['kunde'] = "kunde.inc.php";
	$site['dokumente'] = "dokumente.inc.php";
	$site['logout'] = "logout.inc.php";

if(isset($_Get['seite']))
    {
    include $site[$_GET['seite']];
    } else {
    include "index.html"


?>

<div id='loginbox'>
<div id='login'><h3>Login</h3>

<form action="index.html" method="post">

Benutzername:
<input type="text" size="25" maxlength="70" name="benutzername"> <br>

Passwort:
<input type="password" size="25" maxlength="70" style="margin-left:29px";  name="passwort"><br><br>

<input type="submit" value="Anmelden" name="login"><br><br>

</form>
</div>
</div> 
<? } ?>
</div>
<div id='footer'>
</div>

login.inc.php

PHP:
<?

if (isset($_POST["login"])){

    $benutzername = $_POST["benutzername"];
    $passwort = md5($_POST["passwort"]);

    $abfrage = "SELECT * FROM user WHERE benutzername="$benutzername" LIMIT 1";
    $ergebnis = mysql_query($abfrage);
    $raw = mysql_fetch_objekt($ergebnis);

    if ($raw -> passwort == $passwort) {
	$_SESSION['angemeldet'] == true;
	$_SESSION['id']= $raw -> id_user;
	}else{
	}

}

?>

Suche nun schon seit Stunden nach dem Fehler, ich hoffe mir kann jemand weiter helfen!

Vielen Dank schon mal im Vorraus
 
Hi und Willkommen bei tutorials.de,

vielleicht eine blöde Frage, aber bist du dir sicher,
dass die PHP-Teile in der ersten Datei überhaupt ausgeführt werden?
Wenn der Dateiname wirklich auf ".html" endet...
 
Komischer weiße wenn ich die Datei in ".php" abändere seh ich nur noch einen leeren TAB.

natürlich auch alles geändert überall wo vorher index.html steht steht jetzt .php
 
Zuletzt bearbeitet:
Das ist schon mal ein gutes Zeichen, jetzt wird das auch ausgeführt :D
Mach statt
PHP:
?php
session_start();
am Anfang mal vorläufig das:
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
session_start();
und ruf die Seite wieder auf.
Ausgabe?
Falls es noch immer leer ist oder irgendwie unvolsltändig (abgeschnitten) ausschaut:
Klick im Browser auf Quelltext anzeigen (oder so ähnlich, je nach Brower). Steht da mehr?

Weiters ist auch der HTTP-Returncode eventuell hilfreich;
wo du den findest hängt auch stark vom Browser ab.
 
Leider immer noch leer. Ich benutze übrigens Firefox

Das die einzige Meldung die ich erhalte bei Rechtsklick "Element untersuchen":

[10:17:57.919] Die Zeichenkodierung des HTML-Dokuments wurde nicht deklariert. Das Dokument wird in manchen Browser-Konfigurationen mit verstümmeltem Text dargestellt, wenn das Dokument Zeichen außerhalb des US-ASCII-Bereichs enthält. Die Zeichenkodierung der Seite muss im Dokument oder Transferprotokoll deklariert werden. @ http://192.168.200.158/Info/index2.php
 
Hallo.

ich denke der Fehler liegt hier:
PHP:
$_SESSION['angemeldet'] == true;

denke mal das es so lauten sollte:
PHP:
$_SESSION['angemeldet'] = true;

EDIT:
und ersetzte mal alle
PHP:
<?

durch:
PHP:
<?php

vielleicht liegt es auch mit daran
 
Zuletzt bearbeitet:
Würde ich gerne versuchen wenn ich nich gerade nur einen leeren Tab sehen würde beim aufrufen der Seite.

EDIT:
Habe es geändert. Leider immer nur noch ein weißer TAB
 
Zuletzt bearbeitet:
Habe es jetzt auch unter php am laufen. Kriege auf jetzt die Fehlermeldungen.
Leider wird mir immer noch sofort die Links im Menü angezeigt und das Loginfeld im Startmenü.

Hier mal der aktuelle php-code

index.php

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',true);
session_start();

include("includes/db_connect.inc");
include("login.inc.php");
?>

<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strickt//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd!>
<html xmlns="http://www.e3.org/19999/xhtml" xml:lang="en" lang="en">

<head>
<title> Informationssystem </title>
<link href="css/styles.css" rel="stylesheet"  type="text/css">   
</head>

<body>

<div id='header'>
</div>

<div id='logo'>
<img src="css/images/logo.png">
</div>

<div id='menu'>
<ul>

<?php
    if($_SESSION['angemeldet'] = true){
?>
<li>			<a href="index2.php?site=start">		<span>	Start	</span>		</a>	</li>
<li>			<a href="index2.php?site=suche">		<span>	Suche	</span>		</a>	</li>
<li>			<a href="index2.php?site=kunden">		<span>	Kunden	</span>		</a>	</li>
<li>			<a href="index2.php?site=dokumente">		<span>	Dukomente	</span>		</a>	</li>
<li>			<a href="index2.php?site=logout">		<span>	Logout	</span>		</a>	</li>

<?php
    }
?>

</ul>
</div>

<div id='main'>

<?php
    if($_SESSION['angemeldet'] = true) {

    $site = array();
	$site['start'] = "start.inc.php";
	$site['suche'] = "suche.inc.php";
	$site['kunde'] = "kunde.inc.php";
	$site['dokumente'] = "dokumente.inc.php";
	$site['logout'] = "logout.inc.php";

if(isset($_Get['site'],$site[$_GET['site']]))
    {
    include $site[$_GET['seite']];
    } else {
    include "index2.php"


?>

<div id='loginbox'>
<div id='login'><h3>Login</h3>

<form action="index2.php" method="post">

Benutzername:
<input type="text" size="20" maxlength="70" name="benutzername"> <br>

Passwort:
<input type="password" size="20" maxlength="70" style="margin-left:29px";  name="passwort"><br><br>

<input type="submit" value="Anmelden" name="login"><br><br>

</form>
</div>
</div> 
<?php } ?>
</div>
<div id='footer'>
</div>

</body>
</html>
 
Zuletzt bearbeitet:
Hallo,
in der index.php sollte es schon == heißen, da du dort den Wert vergleichen willst.

In der login.inc.php müßte das geändert werden. Hatte ich vergessen zu schreiben, da muß es nur
ein = sein, da Du dort zuweisen willst.

in Deiner jetzigen index.php sind noch einige Fehler, ich habe sie mal behoben, kannst ja mit Deiner
vergleichen. Damit sollte es laufen.

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',true);
session_start();

include("includes/db_connect.inc");
include("login.inc.php");
?>

<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strickt//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd!>
<html xmlns="http://www.e3.org/19999/xhtml" xml:lang="en" lang="en">

<head>
<title> Informationssystem </title>
<link href="css/styles.css" rel="stylesheet"  type="text/css">   
</head>

<body>

<div id='header'>
</div>

<div id='logo'>
<img src="css/images/logo.png">
</div>

<div id='menu'>
<ul>

<?php
    if($_SESSION["angemeldet"] == true){
?>
<li>            <a href="index.html?site=start">        <span>    Start    </span>        </a>    </li>
<li>            <a href="index.html?site=suche">        <span>    Suche    </span>        </a>    </li>
<li>            <a href="index.html?site=kunden">        <span>    Kunden    </span>        </a>    </li>
<li>            <a href="index.html?site=dokumente">        <span>    Dukomente    </span>        </a>    </li>
<li>            <a href="index.html?site=logout">        <span>    Logout    </span>        </a>    </li>

<?php
    }
?>

</ul>
</div>

<div id='main'>

<?php
    if($_SESSION["angemeldet"] == true) {

    	$site = array();
    	$site['start'] = "start.inc.php";
    	$site['suche'] = "suche.inc.php";
    	$site['kunde'] = "kunde.inc.php";
    	$site['dokumente'] = "dokumente.inc.php";
   		$site['logout'] = "logout.inc.php";

		if(isset($_Get['site'],$site[$_GET['site']])){
    		include $site[$_GET['seite']];
    	} else {
    		include "index.html";
    	}
?>

<div id='loginbox'>
<div id='login'><h3>Login</h3>

<form action="index.html" method="post">

Benutzername:
<input type="text" size="20" maxlength="70" name="benutzername"> <br>

Passwort:
<input type="password" size="20" maxlength="70" style="margin-left:29px";  name="passwort"><br><br>

<input type="submit" value="Anmelden" name="login"><br><br>

</form>
</div>
</div> 
<?php } ?>
</div>
<div id='footer'>
</div>

<div id='elcom'>
designed & created by <a href="http://www.elcom.net" target="blank">ELCOM</a>
</div>

</body>
</html>
 
Zurück