Fehler Meldung, weiss nicht weiter

ATdrag0N

Erfahrenes Mitglied
Hallo,
ich habe ein Problem mit ein Script von mir,
der kommt mir mit einer Fehlermeldung wenn der Login richtig war.

Folgende Fehlermeldung kommt:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/htdocs/w009b013/new/index.php:19) in /www/htdocs/w009b013/new/login.php on line 15

Hier nun die Dateien,

index.php:

HTML:
<? include 'configs/config.php';
?>
<html>
 <head>
  <link rel="stylesheet" type="text/css" href="configs/page.css">
 </head>
 <body>
  <table cellspacing="1" cellpadding="2" width="100%" align="center">
   <tr>
    <td>
  <table cellspacing="1" cellpadding="2" width="80%" align="center">
   <tr>
    <td>
     <img src="configs/image/logo.gif" width="100%">
    </td>
   </tr>
   <tr>
    <td><center>
	 <? include 'configs/menu.php'; ?>
	</center></td>
   </tr>
   <tr>
    <td><br><center>
	 <? include 'configs/inhalt.php'; ?>
	</center></td>
   </tr>
  </table>
	</td>
   </tr>
  </table>
<table cellspacing="0" cellpadding="0" width="100%" align="center">
 <tr>
  <td>
	<table border="0" cellspacing="1" cellpadding="2" width="80%" align="center">
	 <tr>
	  <td class="heads" align="center">privat</td>
	 </tr>
	</table>
  </td>
 </tr>
</table>
 </body>
</html>

Wir ihr sehen könnt include ich die menu.php in der zeile 19,
die beinhaltet folgenden code:

HTML:
<a href="index.php?section=log">Login</a>
<a href="index.php?section=reg">Registrieren</a>

Nun die login.php:

Code:
<?php 
$verbindung = mysql_connect("localhost", "d00872ad" , "xxxx") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("d00872ad") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = $_POST["username"]; 
$passwort = md5($_POST["password"]); 

$abfrage = "SELECT username, passwort FROM users WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 

if($row->passwort == $passwort) 
    {
	session_start();
    $_SESSION["username"] = $username; 
    echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>"; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 

?>

die session abfrage brauche ich aber, da ich damit überprüfe ob der user eingelogt ist oder nicht.

Bitte dringend um hilfe,
wenn ihr fehler findet, dann erweitert mir doch bitte das script dann so das es geht,
da ich in der woche auf arbeit bin, und am wochenende habe ich auch familie zu betreuen :)

Hier mal noch die inhalt.php:

Code:
<?php
    if(isset($_GET['section']) AND isset($dateien[$_GET['section']])) {
	include $dateien[$_GET['section']];
    } else {
	include $dateien['news'];
    }
?>
 
Zuletzt bearbeitet:
meine login.php sieht nun so aus:

Code:
<?php
$verbindung = mysql_connect("localhost", "d00872ad" , "xxx") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("d00872ad") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = $_POST["username"]; 
$passwort = md5($_POST["password"]); 

$abfrage = "SELECT username, passwort FROM users WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 

if($row->passwort == $passwort) 
    {
	ob_start();
	session_start();
	session_unset();
    $_SESSION["username"] = $username;
	ob_end_flush();
    echo "Sie haben sich Erfolgreich Eingelogt,\n";
	echo "weiterleitung in n/a sekunden."; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 

?>

bekomme aber immer noch denn gleichen fehler ausgegeben.

Bei meiner Logout datei kommt dieser fehler:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/htdocs/w009b013/new/index.php:19) in /www/htdocs/w009b013/new/logout.php on line 4

Code:
<?
    if(isset($_GET['action']) AND ("logout" == $_GET['action'])) {
	ob_start();
session_start();
session_unset();
session_destroy();
 ob_end_flush();
	echo "<p>\n";
	echo "    Sie haben sich ausgeloggt.";
	echo "</p>\n";
    }
?>
 
Hi,

du hast doch bereits eine Antwort auf dein Problem bekommen. ;)
Du musst session_start() an erster Stelle stehen haben.

PHP:
<?php
session_start();
ob_start();
$verbindung = mysql_connect("localhost", "d00872ad" , "xxx") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("d00872ad") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = $_POST["username"]; 
$passwort = md5($_POST["password"]); 

$abfrage = "SELECT username, passwort FROM users WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 

if($row->passwort == $passwort) 
    {
	session_unset();
    $_SESSION["username"] = $username;
	ob_end_flush();
    echo "Sie haben sich Erfolgreich Eingelogt,\n";
	echo "weiterleitung in n/a sekunden."; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 

?>


MfG
 
Bekomme Trotzdem denn Fehler:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/htdocs/w009b013/new/index.php:19) in /www/htdocs/w009b013/new/login.php on line 2


Ich habe mal alle dateien als Anhang gemacht,
könnt ihr euch ja mal ansehen, wenn ihr so lieb seid ^^
 

Anhänge

  • Desktop.zip
    8 KB · Aufrufe: 15
Super danke es klappt,

nun habe ich aber was anderes was mich stört.

Und zwar wenn ich eingeloggt bin habe ich oben bei dem Menü ja logout stehen, rechts daneben soll dann der Name stehen mit denn man eingeloggt ist.
Dies ist auch so nachdem man die Seite neu laden tut,
kann man das irgend wie anders machen?

Hier mein Code vom Menü:

Code:
<?
    if(isset($_GET['action']) AND ("login" == $_GET['action'])) {
	echo "<a href=\"index.php?section=logout&amp;action=logout\">Logout</a>&nbsp;";
    }
	else
	{
	echo "<a href=\"index.php?section=log\">Login</a>&nbsp;";
	}
    if(isset($_GET['action']) AND ("login" == $_GET['action'])) {
	echo $_SESSION['username'];
    }
	else
	{
	echo '<a href="index.php?section=reg">Registrieren</a>&nbsp;';
	}
?>
 
PHP:
<?
    if(isset($_GET['action']) AND ("login" == $_GET['action'])) {
	echo "<a href=\"index.php?section=logout&amp;action=logout\">Logout ".$_SESSION['username']."</a>&nbsp;";
    }
	else
	{
	echo "<a href=\"index.php?section=log\">Login</a>&nbsp;";
	}
    if(isset($_GET['action']) AND ("login" == $_GET['action'])) {
	echo $_SESSION['username'];
    }
	else
	{
	echo '<a href="index.php?section=reg">Registrieren</a>&nbsp;';
	}
?>

Meinst du so? Wehe ich bekomme gleich kein Renomme Punkt. :D
 
Sorry aber steht erst da wenn man die Seite aktualisiert :-(

Sicher bewerte ich dein Beitrag,
da du mir sehr geholfen hast.

Ich werde sicherlich noch mehr fragen haben in laufe der zeit,
werde daher diesen thread auf lassen und hier weitere fragen stellen.

Wie vergebe ich die Renomme Punkte
 
Zuletzt bearbeitet:
Zurück