Gimli
11. Mai 2008 um 13:33
1
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");
}
?>
[/php]
immer
[code]
Warning : Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\otiuscms\login.php:5) in C:\xampp\htdocs\otiuscms\login.php on line 34
[/code]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);
?>
[/php]
Frank
11. Mai 2008 um 13:48
2
weil du schon eine ausgabe hattest bevor du header(„Location: index.php“); benutzt
Frank
11. Mai 2008 um 16:42
4
steht doch in der Fehlermeldung…
headers already sent by (output started at C:\xampp\htdocs\otiuscms\login.php:5 ) in C:\xampp\htdocs\otiuscms\login.php on line 34
Gimli
11. Mai 2008 um 19:50
5
das wäre diese Zeile:
[PHP]
$passwort = addslashes($_POST[‚pwd‘]);
[/PHP]
und was wird da ausgegeben :?:
Frank
11. Mai 2008 um 20:31
6
zeig ma das ganze loginscript
Frank
11. Mai 2008 um 21:20
8
sieht das nur hier aus oder hast du auch im originalscripts ne leer zeile
[PHP]
<?php[/PHP]
[PHP]<?php[/PHP]
wenn ja, mach ma die leeren zeilen weg
Gimli
11. Mai 2008 um 21:42
9
jetzt hab ich die leerzeile raus, und das selbe steht da immernoch nur mit line 4
Mach doch mal error_reporting() weg und teste nochmal. Wird nur eine Fehlermeldung ausgegeben?
mfg
Gimli
11. Mai 2008 um 22:13
11
ja wird es. Und wenn ich falsche daten angebe, wird garnichts ausgegeben. es soll aber weitergeleitet werden
Frank
11. Mai 2008 um 22:17
12
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
Gimli
11. Mai 2008 um 22:38
13
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 :-?
Frank
11. Mai 2008 um 23:20
14
benutz einfach ne ausgabepufferung, spätestens dann muss es dann gehen
Gimli
12. Mai 2008 um 07:28
15
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:
[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");
}
?>
[/PHP]
Sorry wenn ich nerve, aber das ist wichtig:roll:
lade die dateien mal mit der dateiendung .phps hoch und zeige se uns
Gimli
12. Mai 2008 um 11:19
17