Header Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
code
datei
datum
erfolg
fehler
fehlermeldung
funktion
header
http
index
kontakt
login
problem
referenz
server
service
url
versuch
weiterleitung
-
Hallo liebe Leute!
Mein Header-Problem bezieht sich nur auf dem Server:
<?php $user = $_POST['user']; $pass = $_POST['pass']; if($user == 'admin' AND $pass == 'admin'){ header('Location: ./admin/admin.php'); }else{ echo ""; } ?>
Lokal funktioniert alles super.
Bitte um Hlfe.
Gruß Andre
Beitrag zuletzt geändert: 29.3.2010 20:49:28 von cbhp -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
header('Location: http://meinedomain/admin/admin.php');
oder
header('Location: http://www.meinedomain/admin/admin.php');
geht beides nicht???
*verzweifel* -
Sollte in der Form eigentlich funktionieren. Das 'www' dürfte keine Rolle spielen.
Gibt es eine Fehlermeldung oder Warnung? Error-Reporting an?
FF -
Ich habe mal testweise:
error_reporting(E_ALL);
eingefügt, jedoch keine Meldungen....
Auch ohne nicht.
-
Alle Browser die ich bisher gesehen hab unterstützen auch die relativen Redirects, auch wenn sie nicht standardkonform sind. Dass das Problem hier liegt ist also unwahrscheinlich. Was passiert denn genau? Einfach eine weiße Seite ohne Weiterleitung? Oder eine Fehlermeldung?
-
http://www.itservice-fuss.de/index.php
FORMULAR:
<form method="POST" action="./index.php">
<table>
<tr>
<td><font size="2">Name:</font></td>
<td><input type="text" name="user" size="12" /></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><input type="password" name="pass" size="12" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Login" /></td>
</tr>
</table>
</form>
Kann getestet werden:
User: admin
Pass: admin
Wird selbstverständlich geändert ;)
Beitrag zuletzt geändert: 29.3.2010 21:28:24 von itservice-fuss -
Hm, und dieser Code der das PW prüft ist wirklich in der index.php? Oder in irgendwas anderem was da includet wird?
Irgendwelche Ausgabe drüber?
Mach mal in den Else-Zweig ein sinnvolles echo rein, dass man erkennt ob der Code da durchgelaufen ist, und schreibt mal vor den ganzen Krempel:
var_dump($_POST);
-
var_dump ergab:
array(2) { ["user"]=> string(5) "admin" ["pass"]=> string(5) "admin" }
also alles in Ordnung, alles steht in der index.php
*verzweifel*
Lokal geht ja alles! -
Auch was im Else-Zweig? Was genau? Da sehe ich nämlich nichts auf der Seite. Wo genau ist der Code, der die Daten überprüft? Stell das var_dump bitte genau über den. Wenn das da schon ist, dann ist dein Problem, dass du bereits Daten ausgibst, bevor du den Redirect durchführst, das kann nicht gehen. (Bzw. nur mit Output Buffering, was bei dir zuhause vielleicht aktiviert ist )
-
Sorry wegen der Länge des Posts, aber kann ja wieder gelöscht werden :)
<body onload="start();">
<div id="container">
<div id="header"></div>
<div id="top"><div style="padding-top: 3px;"><?php echo date("d.m.Y"); ?> - <span id="time"></span></div></div>
<div id="navi">
<a href="#" title="Startseite">Home</a><br />
<a href="./services.php" title="Services">Services</a><br />
<a href="./referenzen.php" title="Referenzen">Referenzen</a><br />
<a href="./kontakt.php" title="Kontakt">Kontakt</a><br />
</div>
<div id="center">
<center>Herzlich Willkommen!</center>
</div>
<div id="right">
<center>
<form method="POST" action="./index.php">
<table>
<tr>
<td><font size="2">Name:</font></td>
<td><input type="text" name="user" size="12" /></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><input type="password" name="pass" size="12" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Login" /></td>
</tr>
</table>
</form>
<?php
var_dump($_POST);
error_reporting(E_ALL);
include("./counter.php");
$user = $_POST['user'];
$pass = $_POST['pass'];
if (isset($_POST['Login'])){
if($user == "admin" AND $pass == "admin"){
header("Location: http://www.itservice-fuss.de/admin/admin.php");
}else{
echo "";
}
}
?>
</center>
</div>
<div id="footer" align="center">
<a href="#" title="Startseite">Home</a> -
<a href="./services.php" title="Services">Services</a> -
<a href="./referenzen.php" title="Referenzen">Referenzen</a> -
<a href="./kontakt.php" title="Kontakt">Kontakt</a> -
<a href="./impressum.php" title="Impressum">Impressum</a> -
<font style="font-size: 10pt; font-family: verdana;">© 2010</font> -
<?=$counter;?> Seitenaufrufe
</div>
</div>
</body> -
Irgendwas hast du falsch gemacht. Willst du wirklich, dass man manuell auf den Administratorbereich zugreifen kann?
http://www.itservice-fuss.de/admin/admin.php
Hier würde ich zunächst eine PHP Abfrage einfügen, die überprüft, dass du auch die richtigen Daten angegeben hast. So kommt man in den Bereich, auch ohne irgendetwas anzugeben... -
Ich habe keine Ausgabe vor dem Header, das problem kenne ich auch ;)
im Adminbereich werde ich noch eine htaccess-Datei einbinden, aber die Seite befindet sich ja noch im Aufbau ;)
Ich weiss einfach nicht weiter, wie gesagt: Lokal geht alles supi -
itservice-fuss schrieb:
Ich habe keine Ausgabe vor dem Header, das problem kenne ich auch ;)
im Adminbereich werde ich noch eine htaccess-Datei einbinden, aber die Seite befindet sich ja noch im Aufbau ;)
Ich weiss einfach nicht weiter, wie gesagt: Lokal geht alles supi
1. Doch, du hast massenweise Ausgabe vor dem Header!
2. Warum dann ein Loginformular, wenn du eine .htaccess nimmst?
3. Ja, geht supi weil du output buffering an hast
Und ja, es ist höchst irreführend dass da kein Warning entsteht, warum auch immer...
Beitrag zuletzt geändert: 29.3.2010 21:48:30 von theseven -
qap2 schrieb:
Dann würde er etwas von einer Fehlermeldung berichten, er sagt aber ausdrücklich, dass es keine Fehlermeldung gibt.
Vor einem PHP-Header darf keine Ausgabe erfolgen!
Ich denke das ist dein Fehler.
Ich tippe darauf, dass du einfach nicht die Bedingung erfüllst, um zu der Weiterleitung zu kommen. Lasse den leeren Echo-Befehl doch einfach mal was ausgeben. Wenn du eine Ausgabe erhältst, weist du, wo das Problem zu suchen ist.
itservice-fuss schrieb:
Eine Möglichkeit währe noch, dass es einen Lese- oder Schreibfehler hab. Lösche die Datei auf Lima und lade sie neu hoch. Nicht überschreiben, sondern wirklich löschen.
Ich weiss einfach nicht weiter, wie gesagt: Lokal geht alles supi -
qap2 schrieb:
Vor einem PHP-Header darf keine Ausgabe erfolgen!
Ich denke das ist dein Fehler.
den fehler kann man mit dem outputbuffer umgehen.
wenn du alles über eine datei arbeitest füge üben einfach:
ob_start();
und am ende einfach
ob_end_flush();
ein. das bewirkt, dass die ausgabe erst komplett auf dem server gespeichert und erst beim aufruf der end_flush funktion ausgegeben wird.
ist sehr nützlich, besonders weil du damit GZIP nutzen kannst, und hingegen der meinung einiger hat sich das bei mir zum guten hingestellt und irgendwo hatte ich mal gelesen, dass man so die multiplen HTTP-Requests durchs einbinden der CSS, JS files und so unterbinden kann, da gleich alles in einem paket geschickt wird, der server wird dadurch also geschont.
probiers mal aus
näheres wirst du bei www.php.net finden, ist eig gut erklärt :)
ich nutze es gerne und es rettet mir so manches mal den arsch
sollte hier aber nicht der fehler sein, denn sonst gäbe es einen fehler aus.
probiers mal bitte so:
<? Header("Location: http://www.xxx.de/admin/admin.php"); exit(); ?>
also einfach die exit funktion dahinter nutzen. vllt klapps ja so besser -
Vielen Dank für die vielen Tipps!
Mit:
header("Location: http://www.itservice-fuss.de/admin/admin.php");
exit();
gehts auch nicht....
PS:
var_dump($_POST);
error_reporting(E_ALL);
include("./counter.php");
$user = $_POST['user'];
$pass = $_POST['pass'];
if (isset($_POST['Login'])){
if($user == "admin" AND $pass == "admin"){
echo "Richtig";
}else{
echo "Falsch";
}
}
Geht alles super, nur die Weiterleitung geht nicht...
Zitat: 1. Doch, du hast massenweise Ausgabe vor dem Header!
Hab den PHP Teil auch ganz nach oben gesetzt, geht trotzdem leider nicht...
Beitrag zuletzt geändert: 29.3.2010 21:57:00 von itservice-fuss -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage