HEADER - Problem

Lektor21

Erfahrenes Mitglied
Ich frage mich wer diese blöden HEADER - ERRORS erfunden hat :mad:

Es muss doch möglich sein, dass man in der index z.B. das hier in den Header lädt:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

und eine Datei includen kann inder man eine Session startet!?

PHP:
session_start();
session_register("user");

Jedoch bekomme ich diesen doofen Error:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /web/index.php:23) in /web/Account/login.php on line 11

Wie kann man solche Errors verhindern? Andere müssen doch auch damit klar kommen oder? Man kommt ja nun mal nicht drum rum verschiedene Sachen in den Header zu laden :confused:
 
Entweder du sorgst dafür, dass vor Funktionsaufrufen, die den HTTP-Header verändern, keine Ausgabe stattfindet. Oder du pufferst die Ausgaben, sodass eine nachträgliche Änderung des HTTP-Headers möglich ist.
 
So jetzt hab ich an den Anfang von meiner index folgendes:
PHP:
ob_start();

und in der login.php

PHP:
ob_clean();
session_start();
session_register("user");

Also er zeigt mir jetzt irgendwie nur meinen Footer danach an, anstatt mich per weiterzuleiten:

PHP:
echo "<head><meta http-equiv='refresh' content='0;URL=index.php?action=account'></head>";
 
Zuletzt bearbeitet:
Gut hab das in den Griff bekommen!

Aber der speichert keine Session. Wenn ich mir den Usernamen angeben lasse oder die Session-ID, zeigt er nichts an! :confused:
 
Ja aber ich glaube nicht, dass das mein Prblem behebt. Vorher hat es auch mit der alten Variante funktioniert :confused:

Übrigens wenn ich die Session zerstöre kommt folgende Meldung:

Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in /web/Account/logout.php on line 3
 
Zeig doch einfach mal das gesamte Skript, anstatt uns anhand von wenigsagenden Ausschnitten herumrätseln zu lassen.
 
Ok, ich prüfe nun aber noch wenn das Profil aufgerufen wird, ob eine Session existiert und zwar so:

PHP:
if (session_is_registered('$user'))

Des funktioniert aber nicht! :confused:

Hier ist das Loginscript;

PHP:
<?php

if      ($login)    { login($finish, $user, $password1, $password2, $email);}
elseif ($logout)    { logout($finish, $user, $password);}
elseif ($forget)    { forget($finish, $email);}
else                { login($finish, $user, $password);}

function content($user) 
{

session_start();
session_register("user");

if ($user == "Administrator")
{

echo "Admin! User: $user";

}
elseif ($user != "Administrator")
{

echo "SUPER! User: $user";

}
}

function login($finish, $user, $password)
{
include("data/config.php");

if ($finish) 
{

$query = mysql_query ("SELECT * FROM user WHERE user = '$user'") OR die(mysql_error());
$sort = mysql_num_rows($query);

if ($sort <= 0) 
{
echo "<head><meta http-equiv='refresh' content='3;URL=index.php?action=login'></head><center><img src='images/attention.gif' galleryimg='no'></img><br><br><font color='FF0000'><b>Unbekannter Benutzername oder falsches Passwort!</b></font></center>";
}
else 
{
while ($row = mysql_fetch_object ($query)) 
{

$password_md5 = md5("$password");

if ($row->password==$password_md5) 
{
$user = ucwords("$user");
content($user);
}
else 
{
echo "<head><meta http-equiv='refresh' content='3;URL=index.php?action=login'></head><center><img src='images/attention.gif' galleryimg='no'></img><br><br><font color='FF0000'><b>Unbekannter Benutzername oder falsches Passwort!</b></font></center>";
}
}
}

}
else 
{

echo "<form method='POST' action='index.php?action=login&finish=yes'>"; ?>

      <table border="0">
         <tr>
            <td colspan="2"><table border="0"><tr><td><img src='images/login.gif' galleryimg='no'></img></td><td valign="middle"><h1>Bitte loggen Sie sich ein!</h1></td></tr></table></td>
         </tr>
         <tr>
            <td rowspan="3"><img src="http://www.tutorials.de/forum/images/login.png" galleryimg="no"></img></td>
            <td><h2>Benutzername</h2><input type="text" name="user" class="login" style="width: 200px;"></td>
         </tr>
         <tr>
            <td><h2>Passwort</h2><input type="password" name="password" class="login" style="width: 200px;">&nbsp;<input type="submit" class="button" style="width: 100px;" value="Einloggen"></td>
         </tr>
         <tr>
            <td>
               <br><a href="index.php?action=login&forget=yes"><img src='images/categorie.png' galleryimg='no'></img>&nbsp;Zugangsdaten vergessen</a>
            </td>
         </tr>
      </table>
</form>

<?php

}
}

function forget ($finish, $email)
{

if ($finish) {
$query=mysql_query("SELECT * FROM user") OR die(mysql_error());
while ($row = mysql_fetch_object ($query)) 
{
if ($email==$row->email) { $ismail="true"; } 
}
if ($ismail=="true") 
{

$info=mysql_query("SELECT * FROM user WHERE email = '$email'") OR die(mysql_error());
while ($row = mysql_fetch_object ($info)) {
$user="$row->user";
$vorname="$row->vorname";
$name="$row->name";
}

$pool = "qwertzupasdfghkyxcvbnm";
$pool .= "23456789";
$pool .= "WERTZUPLKJHGFDSAYXCVBNM";

srand ((double)microtime()*1000000);

for($index = 0; $index < 5; $index++)

{
$new_password .= substr($pool,(rand()%(strlen ($pool))), 1);
}

$new_password_md5 = md5("$new_password");

mysql_query("UPDATE user SET password = '$new_password_md5' WHERE email = '$email'") OR die(mysql_error());

$to  = "$email";
$titel = "Zugangsdaten f&uuml;r ####";
$content = "
<html>
   <head>
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
   </head>
   <body>
   <b>
   <font color='#0000FF'>Hallo $vorname $name!</font>
   <br>
   <br>
   <br>
   Ihre angeforderten Zugangsdaten f&uuml;r http://www.autofeedback.de lauten wie folgt:
   <br>
   <br>
   <font color='#FF0000'>
   Benutzername: $user
   <br>
   Passwort: $new_password
   </font>
   <br>
   <br>
   Ihr neues Passwort wurde per Zufallsgenerator erstellt, dieses k&ouml;nnen Sie unter 'Benutzerdaten' in Ihrem Account wieder &auml;ndern!
   <br>
   <br>
   <br>
   <table width='100%' border='0'>
      <tr>
         <td bgcolor='#C0C0C0'>
         <b><font color='#FFFFFF'>
         Bitte beachten Sie, dass diese E-Mail vom System erstellt wurde und daher die Antwortfunktion nicht genutzt werden kann!
         Bei Fragen, Problemen oder Anregungen nutzen Sie bitte das Supportformular in Ihrem Account!
         </b></font>
         </td>
      </tr>
   </table>
   <br>
   <br>
   <br>
   Wir bedanken uns f&uuml;r Ihr Vertrauen in unseren Service und verbleiben mit freundlichen Gr&uuml;&szlig;en!
   <br>
   <br>
   Ihr <a href='http://www.autofeedback.de'>AutoFeedback.de</a> - Team
   </b>
   </body>
</html>
";

$header  = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "From: AutoFeedback.de <System@AutoFeedback.de>\r\n";

if (mail($to, $titel, $content, $header))
{
echo "<head><meta http-equiv='refresh' content='3;URL=index.php?action=login'></head><center><img src='images/attention.gif' galleryimg='no'></img><br><br><font color='#008000'><b>Ihre neuen Zugangsdaten wurden erfolgreich an Ihre Emailadresse verschickt!</b></font></center>";
}
}
else { echo "<head><meta http-equiv='refresh' content='3;URL=index.php?action=login&forget=yes'></head><center><img src='images/attention.gif' galleryimg='no'></img><br><br><font color='FF0000'><b>Diese Emailadresse ist nicht registriert!</b></font></center>";}
}
else 
{
echo "<form method=post action='index.php?action=login&forget=yes&finish=yes'>";

?>

      <table border="0">
         <tr>
            <td><table border="0"><tr><td><img src='images/login.gif' galleryimg='no'></img></td><td valign="middle"><h1>Neue Zugangsdaten</h1></td></tr></table></td>
         </tr>
         <tr><td>Ihre neuen Zugangsdaten werden Ihnen an Ihre im System hinterlegte Emailadresse gesendet! Ihr Benutzername bleibt dabei bestehen.</td></tr>
            <tr><td>&nbsp;</td></tr>
         <tr>
            <td><h2>Emailadresse</h2><input type="text" name="email" class="login" style="width: 200px;">&nbsp;<input type="submit" class="button" value="Beantragen"></td>
         </tr>
      </table>
   </form>

<?php

}
}

?>
 
Zurück