• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

headers allready sent

Status
Für weitere Antworten geschlossen.

Gimli

Mitglied
warum steht bei folgendem Code

PHP:
<?php
error_reporting(E_ALL);
require_once("config.ini.php");
$passwort = addslashes($_POST['pwd']);
$loginname = addslashes($_POST['name']);
if(empty($loginname)) $fehler .= "Kein Name eingegtragen\n";
if(empty($passwort)) $fehler .= "Kein Passwort eingetragen\n";
$st = mysql_fetch_object(mysql_query("SELECT * FROM users WHERE name = '".$loginname."'"));
$status = $st->status;
if($status == "2") $fehler .= "Account ist gesperrt!\n";
if(empty($fehler)) {
    $verbindung = mysql_fetch_object(mysql_query("SELECT * FROM users WHERE name = '".$loginname."'"));
    $passwd = $verbindung->passwd;
    $usr = $verbindung->name;
    $rank = $verbindung->rank;
    $email = $verbindung->email;
    $id = $verbindung->id;
    $pass_md5 = md5($passwort);
    if($passwd == $pass_md5) {
        $_SESSION["user_session_id"] = session_id();  
         $_SESSION["user_nickname"] = $usr;  
        $_SESSION["rank"] = $rank;
        $_SESSION["email"] = $email;
        $_SESSION["pwd"] = $passwd;
        $_SESSION["uid"] = $id;
        setcookie("pwd", $passwort, time()+1000000);
        setcookie("name", $usr, time()+1000000);
        header("Location: index.php");
    }
    else $fehler .= "Passwort falsch\n";
}
else {
    header("Location: index.php?error=$fehler");
}
?>
immer

Code:
[B]Warning[/B]:  Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\otiuscms\login.php:5) in [B]C:\xampp\htdocs\otiuscms\login.php[/B] on line [B]34[/B]
und wenn ich das richtige angebe (richtiger name und richtiges pw) funktioniert es. und wenn ich eine falsche angabe mache leitet er nicht weiter

EDIT:

Die config.ini.php Datei sieht volgendermaßen aus:

PHP:
<?php
session_start();

$host = "localhost"; // Host (normalerweise localhost)
$user = "xyz"; // Username für Datenbank
$pass = "xyz"; // Passwort für User
$database = "xyz"; // Datenbanknahme
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);

?>
 
Zuletzt bearbeitet:
das wäre diese Zeile:

PHP:
$passwort = addslashes($_POST['pwd']);

und was wird da ausgegeben :?:
 
sieht das nur hier aus oder hast du auch im originalscripts ne leer zeile

PHP:
<?php
PHP:
<?php

wenn ja, mach ma die leeren zeilen weg
 
ja wird es. Und wenn ich falsche daten angebe, wird garnichts ausgegeben. es soll aber weitergeleitet werden :|
 
Es steht auf jeden Fall fest, dass der Fehler hervorgerufen wird, weil eine Ausgabe vor dem location header stattfindet.

Includierst du die Datei evtl noch in eine andere Datei hinein?

Naja wie dem auch sei, du kannst ja zur not auch eine Ausgabepufferung benutzen
 
nein, wie schon gesagt, ich benutze ein und dieselbe Datei. Die wird nicht includiert und includiert nur die config datei, die auch nichts ausgibt. wenn man eine falsche Angabe macht, trifft ja eigentlich die untere Bedingung zu, oder? dann müsste er ja wohl weiterleiten. ich weiß echt nicht, wo der Fehler liegt :-?
 
ok, hab das problem jetzt glöst, dass wenn man was falsches eingibt, dass man dann auch weitergeleitet wird. Nur wenn man bei beiden Feldern garnichts eingiebt steht da:
Code:
[B]Warning[/B]:  Header may not contain more than a single header, new line detected. in [B]C:\xampp\htdocs\otiuscms\login.php[/B] on line [B]35[/B]

Der Code sieht volgendermaßen aus:
PHP:
<?php
require_once("config.ini.php");
$passwort = addslashes($_POST['pwd']);
$loginname = addslashes($_POST['name']);
if(empty($loginname)) $fehler .= "Kein Name eingegtragen\n";
if(empty($passwort)) $fehler .= "Kein Passwort eingetragen\n";
$st = mysql_fetch_object(mysql_query("SELECT * FROM users WHERE name = '".$loginname."'"));
$status = $st->status;
if($status == "2") $fehler .= "Account ist gesperrt!\n";
if(empty($fehler)) {
    $verbindung = mysql_fetch_object(mysql_query("SELECT * FROM users WHERE name = '".$loginname."'"));
    $passwd = $verbindung->passwd;
    $usr = $verbindung->name;
    $rank = $verbindung->rank;
    $email = $verbindung->email;
    $id = $verbindung->id;
    $pass_md5 = md5($passwort);
    if($passwd == $pass_md5) {
        $_SESSION["user_session_id"] = session_id();  
         $_SESSION["user_nickname"] = $usr;  
        $_SESSION["rank"] = $rank;
        $_SESSION["email"] = $email;
        $_SESSION["pwd"] = $passwd;
        $_SESSION["uid"] = $id;
        setcookie("pwd", $passwort, time()+1000000);
        setcookie("name", $usr, time()+1000000);
        header("Location: index.php");
    }
    else {
        $fehler .= "Passwort falsch\n";
        header("Location: index.php?error=$fehler");
    }
}
else {
    header("Location: index.php?error=$fehler");
}
?>
Sorry wenn ich nerve, aber das ist wichtig:roll:
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben