Hallo, da ich einfach nicht weiterkomme, muss ich mich mal an euch wenden:
Ich habe hier eine Seite index.php auf der per include() ein loginformular.php angezeigt wird. Wenn dieses Loginformular ausgefüllt wurde, werden die eingegeben Daten an login.php weitergeleitet und dort auf Richtigkeit überprüft. Wenn die Daten richtig sind, soll auf home.php weitergeleitet werden, wenn nicht zurück auf index.php.
Leider bekomme ich nach der Angabe der Daten immer folgenden Fehler:
Ich bin also davon ausgegangen, dass der Fehler in der login.php liegt. Hier der Code (Zeile 35 ist genau der erste header()):
Und hier die loginformular.php
Danke im voraus.
P.S.: Falls es eine bessere Möglichkeit zur Weiterleitung als header gibt, würde ich die natürlich auch gern nehmen.
Ich habe hier eine Seite index.php auf der per include() ein loginformular.php angezeigt wird. Wenn dieses Loginformular ausgefüllt wurde, werden die eingegeben Daten an login.php weitergeleitet und dort auf Richtigkeit überprüft. Wenn die Daten richtig sind, soll auf home.php weitergeleitet werden, wenn nicht zurück auf index.php.
Leider bekomme ich nach der Angabe der Daten immer folgenden Fehler:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\login.php:1) in C:\xampp\htdocs\test\login.php on line 35
PHP-Code:
<?php
$server = 'localhost';
$benutzer = 'root';
$passwort = '';
$datenbank = 'test';
$verbindung = @mysqli_connect($server, $benutzer, $passwort);
if ($verbindung){
mysqli_select_db($verbindung, $datenbank);
if (mysqli_error($verbindung)){
echo 'Fehler: ' . mysqli_error($verbindung);
}else{
// Hier besteht eine gültige Verbindung mit der Datenbank
if (isset($_POST['user']) && $_POST['passwort']){
// user und passwort wurden ausgefüllt
$user = $_POST['user'];
$passwort = md5($_POST['passwort']);
$sql = 'SELECT passwort FROM user WHERE user="' . $user . '"';
$abfrage = mysqli_query($verbindung, $sql);
$result = mysqli_fetch_array($abfrage);
$passwort_aus_db = $result['passwort'];
if ($passwort == $passwort_aus_db){
// Benutzerangaben stimmen
$_SESSION['user'] = $user;
header ("LOCATION: home.php");
}else{
header ("LOCATION: index.php");
}
}
}
}else{
echo 'Verbindungsfehler: ' . mysqli_connect_error($verbindung);
}
mysqli_close($verbindung);
?>
PHP-Code:
<?php
if(isset($_SESSION['user'])) {
echo 'Hallo ' . $_SESSION['user'];
} else {
?>
<div id="loginformular">
<form method="post" enctype="multipart/form-data" action="login.php">
<input name='user' type="text" value="User" /><br/>
<input name='passwort' type="password" value="passwort" /><br/>
<input type="submit" value='Login'>
</form>
</div>
<div id="registrierungsaufforderung">
<a href="registrierungsformular.php">registrieren!</a>
</div>
<?php
}
?>
P.S.: Falls es eine bessere Möglichkeit zur Weiterleitung als header gibt, würde ich die natürlich auch gern nehmen.
Kommentar