Header Problem
header Problem
- php
0 Didi720 header Problem0 Didi72
Hi,
ich habe mal wieder ein Headerprobelm. Das Problem ist aber eigentlich, das es bei Windoof geklappt hat und jetzt bei Linux nicht egal. Also hier die Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /opt/lampp/htdocs/Auftraege/Steffen/news_schreiben.php:6) in /opt/lampp/htdocs/Auftraege/Steffen/news_schreiben.php on line 14
Und hier mal das Script dazu vielleicht könnt ihr mir ja helfen...
<?php
echo '
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<span style="color:c0c0c0;font-size:15px;">Login: <input type="text" class="registration" name="login">
Passwort: <input type="password" class="registration" name="password">
<input type="submit" name="login" value="Login"></form>';
?>
<?php
if(isset($_POST["login"])){
if (($_POST["login"] == "steffen") ||
($_POST["password"] == "admin")) {
header("Location: news_schreiben_2.php");
}
if (($_POST["login"] != "steffen") ||
($_POST["password"] != "admin"))
{
echo ' <span style="color:red">Falscher Login!</span>';
}
}
?>
Warning: Cannot modify header information - headers already sent by (output started at /opt/lampp/htdocs/Auftraege/Steffen/news_schreiben.php:6) in /opt/lampp/htdocs/Auftraege/Steffen/news_schreiben.php on line 14
Hallo,
die Fehlermeldung besagt ja, das der Header nicht gesendet werden kann, da dieser ja schon längst - nämlich durch deine echo-Ausgabe am Anfang der Datei - gesendet worden ist.
Die Lösung wäre, die echo-Ausgabe abhängig deiner PWD-Üperprüfung ausgeben zu lassen.
Gruss
Didi71
Die Lösung wäre, die echo-Ausgabe abhängig deiner PWD-Üperprüfung ausgeben zu lassen.
Könntest du mir das vielleicht noch ein bisschen erklären bin Anfänger. Vielleicht ein Beisiel geben...
Hallo header.
Könntest du mir das vielleicht noch ein bisschen erklären bin Anfänger. Vielleicht ein Beisiel geben...
Dann solltest du dir php.net merken. Dort findest du nahezu alles, was du wissen musst, unter anderem Informationen zu header().
Gruß, Ashura
Die Lösung wäre, die echo-Ausgabe abhängig deiner PWD-Üperprüfung ausgeben zu lassen.
Könntest du mir das vielleicht noch ein bisschen erklären bin Anfänger. Vielleicht ein Beisiel geben...
Hi nachmal,
mal auf die schnelle ein unsauberer Code, der aber vielleicht dir ein bissel hilft:
<?php
if ($aktion!="login") {
echo '
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<span style="color:c0c0c0;font-size:15px;">Login: <input type="text" class="registration" name="login">
Passwort: <input type="password" class="registration" name="password">
<input type="submit" name="login" value="Login"><input type="hidden" name="aktion" value="login"</form>';
}
if(isset($_POST["login"])){
if (($_POST["login"] == "steffen") ||
($_POST["password"] == "admin")) {
header("Location: news_schreiben_2.php");
}
if (($_POST["login"] != "steffen") ||
($_POST["password"] != "admin"))
{
echo ' <span style="color:red">Falscher Login!</span>';
}
}
?>
Erstmal hab ich die PHP-End-Tags entfernt und dein Formulat um ein
unsichtbares Feld (Name:aktion/Gesetzter Wert:login) erweitert.
Wird jetzt die Datei aufgerufen, überprüft das Script zuerst ob die Varibale "aktion" den Wert "login" hat - falls nein wird das Formular ausgegeben. Wenn das Formular abgesendet wurde, hat die Vari ja einen Wert, so das die Ausgabe übergangen wird und direkt die Überprüfung läuft. Sauberer kann man natürlich auch "!isset" verwenden, also prüfen, ob die Varibale überhaupt da ist.
Gruss
Didi72
Nachtrag:
Zudem scheint es ja, das du aus 2 PHP-Dateien eins machen wolltest,
hättest du beide belassen (einmal Login-Formular und einmal die Auswertung) würde das Script auch laufen.
Gruss
Didi72