Loginüberprüfung, was habe ich falsch?

  • Hi,

    könnt ihr mir den Rat geben, warum die Überprüfung nach "Hase" nicht stattfindet und ich auf jeden Fall in mein Übergabeformular komme?


  • Vielleicht weil dein Formular kaputt ist?!

    Code
    <td align='left'><input type='text' maxlength='8' size='10' name='login_admin' value='$sendung'</td>

    Richtig debuggen

    • Man bemerkt, dass ein Skript nicht das tut, was es soll.
    • Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    • Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    • Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    • An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    • Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    • Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    • Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    • Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Es wäre schön, wenn du den Quellcode mal ordentlich einrücken würdest, steigert die Lesbarkeit enorm.

  • Also erstmal an dieser Stelle schönen Dank für deine Zeit.


    Man bemerkt, dass ein Skript nicht das tut, was es soll.
    hab ich, darum auch mein Post

    Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    danke, das ist konstruktiv. Habe ich eingebaut, aber was bringt es in meinem Fall? Ich kann nichts erkennen?
    Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    habe ich dank deiner Info probiert, aber was soll sich tun? Das Form wird weiterhin ganz normal angezeigt
    Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    Hab ich mit meinen Möglichkeiten. Das Form läßt sich öffnen und anzeigen, die letzten "else-Anweisung" wurde ausgeführt, bin dann einfach nicht weitergekommen, schlimm? Keine Angst, ich habe nicht gleich gepostet, aber nach ner Stunde darf man doch mal um Hilfe bitten, oder?
    An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    zur Kenntniss genommen, aber nicht verstanden
    Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    ...
    Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    genau dazu sind Foren da, oder? Um Fragen zu stellen?
    Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Es wäre schön, wenn du den Quellcode mal ordentlich einrücken würdest, steigert die Lesbarkeit enorm.
    Warum wird es einem so schwer gemacht, dann gib mir doch ein Beispiel wie ich es besser mache!
    Ich bin absolut neu in der Materie, fang von Null an. Habe 4 Tage lang mich durch all eure Hilfen im Newbiebereich gelesen, gelesen und gelesen, und jetzt angefangen in der Praxis auch mal zu testen, da man auch mal Erfolgserlebnisse braucht. Wenn man keinen Menschen im Umkreis hat, der einen einfach ein wenig hilft, und nicht unbedingt das Glück hatte, beruflich oder im Studium sowas zu erlernen, fängt man nunmal irgendwo an. Ich benutze keinen HTML-Editor und schreibe ALLES schön mit der Hand, damit ich lerne.
    Und dann gibt es glücklicherweise Foren, die einem vermeintlich helfen können, um nicht gleich alles hinzuschmeißen, wenn man mal nicht weiterkommt.

    Und nun? Ich habe mich ordentlich Vorgestellt bei euch und viel gelesen- mit deiner Antwort fühle ich mich schlechter als Vorher und weiß auch nicht unbedingt mehr.

    2 Mal editiert, zuletzt von marcoman (12. Februar 2012 um 21:05)

  • Also, wenn ich beim Administrator-Login Hase eingebe, funktioniert das.

  • genau, es funktioniert aber auch dann, wenn ich was falsches eingebe. Ich habe, um wie du so schön sagtest, dem Fehler auf die Spur zu kommen, auch mal die Verlinkung nach "Hase" im href beim zweiten "if" rausgenommen und nur ein "echo "test"; eingegeben. Irgendwie wird das gar nicht angeprochen, denn ich erhalte bei EIngabe von "Hase" nicht dieses echo.

    Was macht das "print_r($_POST);"?

    So, mit deiner Hilfe jetzt bin ich wieder n bissl motivierter, danke dafür

  • ne, haste mir nicht verbote, danke :)

    Also bei mir gehts leider nicht, sehr seltsam. Ich will dich aber nicht weiter belästigen, also danke an dieser Stelle, keine Ahnung, woran es liegen kann, dass es bei dir geht.

  • Was für eine Ausgabe bekommst du mit print_r? Sind das immer die richtigen Eingaben?

  • Ich habe auch Windows 7 und XAMPP, allerdings nicht die neueste Version. Ich glaube aber nicht, dass es an XAMPP liegt, aber nix ist unmöglich.

    2 Mal editiert, zuletzt von Bandit (12. Februar 2012 um 21:36)

  • Da ist was oberfaul, wieso wird da PHP-Quellcode ausgegeben. Irgendetwas hast du das falsch gemacht. Poste mal den aktuellen QUellcode und benutzte bitte die PHP-Tags und nicht die Code-Tags des Forums

  • mmmh, so richtig weiß ich jetzt nicht was du meint mit "richtige PHP-Tags", hatte ja zu beginn meinem Originalgeschrieben Code zukommen lassen. Ach ähm, und noch was, ich bin verunsichert, da ich mal in einer Variablen normale ANführungszeichen verwenden kann, und mal nur Hochkomma. Warum ist das so`, ich dachte eigentlich, dass man nur Hochkomme verwenden darf, aber so wie ich den COde aufgearbeitet habe wird er im Editor Notepad auch korrekt angezeigt.


    ALso hier der Code:
    <!--<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>-->
    <html>
    <head>
    <title>Administrator</title>
    <link href='styles/styles.css' rel='stylesheet' type='text/css' media='all' />
    </head>
    <body align='center' valign='middle'>

    <table align='left' border='0' width='280' align='left' valign='middle' class='grau'>
    <tr>
    <td width='200' align='left'><b>time tracking administration</b></td>
    </tr>

    </table>
    <br /><br />
    <hr style=\'width: 100%; height: 2px;\'>
    <br /><br />

    <?php
    error_reporting(E_ALL);
    ini_set("display_errors", true);

    $sendung = isset($_POST['login_admin']) ? $_POST['login_admin'] : "";

    $formular = "
    <form action='admin_portal.php' method='POST' align='center' valign='middle'>
    <table border='0' width='350' align='center' valign='middle' class='grau'>
    <tr>
    <th colspan='3' width='200' align='center'>bitte logge dich ein!</th>
    <tr />
    <tr><tr /><tr><tr /><tr><tr /><tr><tr />
    <tr>
    <td class='weiss' width='200' align='right'><i>Administrator-Login:<i/></td>
    <td align='left'>
    <input type='text' maxlength='8' size='10' name='login_admin' value='$sendung'</td>
    <td class='weiss' align='left'></td>
    </tr>
    <tr>
    <td class='weiss' width='200' align='right'><i>Admin-Zugangspasswort:<i/></td>
    <td align='left'>
    <input type='password' maxlength='8' size='10' name='pass_admin' </td>
    <td class='weiss' align='left'>
    <input type='submit' name='sendung' value='login'/>
    </tr>
    <br /><br /><br />
    </table>
    </form>";

    if ($_SERVER['REQUEST_METHOD'] == "POST")
    {
    // Hier mal das superglobale Array $_POST ausgeben
    print_r($_POST);

    if ($_POST['login_admin'] == 'Hase')
    {
    echo 'Richtig - <a href="admin_portal.php">Admin-Portal</a>';
    }
    else
    {
    echo "Leider falsch!" . $formular;
    }
    }
    else
    {
    echo $formular;
    }
    ?>
    </body>
    <html>

  • Ähm, das ist aber eine Datei mit der Extension .php und du rufst das auch über http://localhost/scriptname.php auf?

    Und leider hast du überhaupt keinen BB-Code beim Posten benutzt

    Code
    <input type='text' maxlength='8' size='10' name='login_admin' value='$sendung'</td>


    Da fehlt immer noch ein >, allerdings kann das nicht das Problem sein. Bei mir funktioniert es so, wie du es hast.

    Einmal editiert, zuletzt von Bandit (12. Februar 2012 um 21:53)

  • also, ich habe das script in einem Unterordner liegen, somit lautet mein Pfad "http://localhost/time_course/admin_login.php"

    Und ich habe das script jetzt drin, welches du als letztes geschickt hast mit dem comment : "// Hier mal das superglobale Array $_POST ausgeben"

  • also, ich habe mal eben XAMPP 1.7.7 gezogen und bei mir installiert, das Script funktioniert damit einwandfrei. Ich würde mal sagen, haue XAMPP mal weg und installiere es neu.

  • hast du mal einen Direktlink? Wäre ja zu blöd, wenn so ein Fehler auch noch bei mir als Newbie auftritt, da kann man ja nur abschalten...

    hier meine aktuelle XAMPP

  • ne, nix zu machen. Bei mir funzt es leider net. Formular alles super, aber irgendwie läufz die if-Anweisung nicht. Schönen Dank erstmal, aller Anfang ist schwer.

    muss früh raus, bis denn