Sponsor-Board.de

Normale Version: Cannot modify headers
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hiho liebes Sponsor-Board,
ich bin mal wieder wegen eines Problems ratlos.
Seitdem der storage-plan Server neu ist, geht ein Teil meines CMS nicht mehr - natürlich noch der wichtigste Mad.
Doch nun zum Problem:
Ich hab das Acp mit einem Passwort geschützt, halt einer User-Authentifizierung. Will ich mich nun einloggen - und das Passwort ist richtig, kommt folgende Meldung:

Zitat:
[14-Oct-2013 12:39:38 Europe/Berlin] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/cms/public_html/administrator/login.php:1) in /home/cms/public_html/administrator/login.php on line 6
[14-Oct-2013 12:39:38 Europe/Berlin] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/cms/public_html/administrator/login.php:1) in /home/cms/public_html/administrator/login.php on line 28


Ich konnte den Fehler jetzt auch schon auf die Dateien login.php und auth.php beschränken (auth is die, die die Sessions checkt)

Hier erstmal meine login.php:

PHP-Code:
<?php
    
include '../config.php';
    
$gesendet mysql_real_escape_string($_POST['sent']);
     if (
$_SERVER['REQUEST_METHOD'] == 'POST') {
         
            
session_start();

            
$username mysql_real_escape_string($_POST['username']);
            
$passwort mysql_real_escape_string($_POST['passwort']);
            
$passwortmd5(md5($passwort));
            
$sql "SELECT * FROM `user` WHERE `name` = '$username'";
            
$db_erg mysql_query$sql );
            if ( ! 
$db_erg )
                            {
                                die(
'Ungültige Abfrage: ' mysql_error());
                            }else { 
$meldung 'Vorgang erfolgreich!';}
     
     while (
$zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
{
$password $zeile['passwrd'];
$id $zeile['id'];
$banned$zeile['banned'];
}
if(
$password == $passwort and $banned == '0'){
        
$_SESSION['angemeldet'] = true;
       
$_SESSION['user'] = $username;
       
$_SESSION['id'] = $id;
       
header('Location: index.php');
       exit;
    }else{
$meldung 'Passwort / Nutzername falsch oder Nutzerkonto gesperrt';}
}
?>
<!DOCTYPE html>
<html>
  <head>
    <title>pasterntCMS - Login</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
  </head>
  <body background="img/bg.jpg">
      <br><br><br><br><br>
    <div class="container content">
        <div class="page-header">
            <h1>pasterntCMS <small class="text-error">Admin-CP</small></h1>
        </div>
<?
    if(isset($meldung)){
          echo '<div class="alert alert-error">
  <button type="button" class="close" data-dismiss="alert">&times;</button>';        
          echo '<h4>'.$meldung.'</h4>';
          echo 'Bitte Passwort / Nutzernamen &uuml;berpr&uuml;fen';
          echo '</div>';
    }?><center>
    <form action="login.php" method="post" class="form-inline">
        <img src="img/logo.png">
   <div class="input-prepend">
        <span class="add-on">Nutzername:</span>
        <input class="span2" name="username" type="text" placeholder="Nutzername">
    </div>&nbsp;
    <div class="input-prepend">
       <span class="add-on">Passwort:</span>
        <input class="span2" name="passwort" type="password" placeholder="Passwort">
        <input class="span2" name="sent" type="hidden" value="1">
    </div>
   <input type="submit" value="Anmelden" class="btn btn-primary"/>
        </form></center>
          </div>
    <script src="http://code.jquery.com/jquery.js"></script>
    <script src="js/bootstrap.min.js"></script>
  </body>
</html> 


Hier nun die auth.php:

PHP-Code:
<?php
     session_start
();

     
$hostname $_SERVER['HTTP_HOST'];
     
$path dirname($_SERVER['PHP_SELF']);

     if (!isset(
$_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
      
header('Location: http://'.$hostname.($path == '/' '' $path).'/login.php');
      exit;
      }
?>

Leider kann ich keinen Fehler erkennen, was is da los?
Wär über Hilfe dankbar.
MfG
Tim

Die Fehlermeldung sagt doch eigentlich genug oder?

Zitat:
headers already sent by


Heißt der Header wurde bereits einmal ausgegeben und ein zweites mal ist beim Header in PHP nicht möglich.

setz das session_start am Anfang deiner index.php und nimm es sonst überall raus
Oder arbeite mit output_buffering.
Danke @all, Problem konnte gelöst werden Wink
Referenz-URLs