kostenloser Webspace werbefrei: lima-city


Header Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    i************s

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Und verrätst Du uns auch noch, was bitte dein Problem ist?

    FF
  4. Autor dieses Themas

    i************s

    Hallo, gerne:

    Die Weiterleitung auf die Admin-Seite funktioniert nicht.
  5. Warum sagst Du das denn nicht gleich? :wink:

    Die Url ist falsch. Du benutzt eine relative Url, die in diesem Zusammenhang nicht unterstützt wird.

    Ändere sie in "http://deineDomain.tdl/admin/admin.php", dann klappts auch mit dem Server.

    FF
  6. Autor dieses Themas

    i************s

    header('Location: http://meinedomain/admin/admin.php');

    oder

    header('Location: http://www.meinedomain/admin/admin.php');

    geht beides nicht???

    *verzweifel*
  7. Sollte in der Form eigentlich funktionieren. Das 'www' dürfte keine Rolle spielen.
    Gibt es eine Fehlermeldung oder Warnung? Error-Reporting an?

    FF
  8. Autor dieses Themas

    i************s

    Ich habe mal testweise:

    error_reporting(E_ALL);

    eingefügt, jedoch keine Meldungen....

    Auch ohne nicht.

  9. 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?
  10. Autor dieses Themas

    i************s

    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
  11. 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);
  12. Autor dieses Themas

    i************s

    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!
  13. 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 ;-) )
  14. Autor dieses Themas

    i************s

    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"); ?>&nbsp; - <span id="time"></span></div></div>
    <div id="navi">
    &nbsp;&nbsp;<a href="#" title="Startseite">Home</a><br />
    &nbsp;&nbsp;<a href="./services.php" title="Services">Services</a><br />
    &nbsp;&nbsp;<a href="./referenzen.php" title="Referenzen">Referenzen</a><br />
    &nbsp;&nbsp;<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>&nbsp;&nbsp;-&nbsp;&nbsp;
    <a href="./services.php" title="Services">Services</a>&nbsp;&nbsp;-&nbsp;&nbsp;
    <a href="./referenzen.php" title="Referenzen">Referenzen</a>&nbsp;&nbsp;-&nbsp;&nbsp;
    <a href="./kontakt.php" title="Kontakt">Kontakt</a>&nbsp;&nbsp;-&nbsp;&nbsp;
    <a href="./impressum.php" title="Impressum">Impressum</a>&nbsp;&nbsp;-&nbsp;&nbsp;
    <font style="font-size: 10pt; font-family: verdana;">&copy; 2010</font>&nbsp;&nbsp;-&nbsp;&nbsp;
    <?=$counter;?> Seitenaufrufe
    </div>
    </div>
    </body>
  15. 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...
  16. Vor einem PHP-Header darf keine Ausgabe erfolgen!
    Ich denke das ist dein Fehler.
  17. Autor dieses Themas

    i************s

    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
  18. 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
  19. qap2 schrieb:
    Vor einem PHP-Header darf keine Ausgabe erfolgen!
    Ich denke das ist dein Fehler.
    Dann würde er etwas von einer Fehlermeldung berichten, er sagt aber ausdrücklich, dass es keine Fehlermeldung gibt.

    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:
    Ich weiss einfach nicht weiter, wie gesagt: Lokal geht alles supi
    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.
  20. g****e

    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 :-D

    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 ;-)
  21. Autor dieses Themas

    i************s

    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
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!