Markus: Abfrage funzt nicht so wie ich mir das vorstelle....

Hi, ich möchte mit PHP eine Passwortabfrage machen. Ich habe in der Datei login.php zwei Felder und ein Submit-Button. Hier der komplette Code der Datei login.php:

<html>
<head><title></title></head>
<body>
<form action="log.php" method="post" name="formular">
<b>Name:</b><br>
<input type="text" name="username">
<br><b>Passwort:</b><br>
<input type="password" name="passwort">
<br><br>
<input type="submit" name="submit" value="Anfrage senden">
</form>
</body>
</html>

Hier nun der Code der Datei log.php, wo die Daten verarbeitet werden:

<?
if(isset($_POST['username'], $_POST['passwort']))
{
if($_POST['username'] == "xxx" && $_POST['passwort'] == "xxx")
      {
        echo "PW richtig";
      }
else
      {
        echo "PW falsch";
      }
}
?>

Ich kann hier leider meinen Fehler nicht entdecken...

Bitte helft mir

Markus

  1. Hallo,

    if(isset($_POST['username'], $_POST['passwort']))

    schreib doch mal: if(isset($_POST['username'] && isset($_POST['passwort'])

    Allerdings solltest du mal erklären wo den dein Problem ist - bzw. was wird dir denn ausgegeben - du schreibst von Fehler aber nicht was!?! (Oder ich habs überlesen)

    cu Benedikt Loepp

    1. Hallo,

      HUHU

      if(isset($_POST['username'], $_POST['passwort']))
      schreib doch mal: if(isset($_POST['username'] && isset($_POST['passwort'])

      Hmm, das ist so schon richtig, denke ich, denn wenn ich das "&&" einsetze, dann kommt n Parseerror...

      Parse error: parse error, expecting ','' or ')''

      Allerdings solltest du mal erklären wo den dein Problem ist - bzw. was wird dir denn ausgegeben - du schreibst von Fehler aber nicht was!?! (Oder ich habs überlesen)

      Ach ja.. Wenn ich dort die Daten eingebe und auf Submit drücke, öffnet sich ein neues Fenster, jedoch wird dort nichts ausgegeben...
      Ihr könnt es gerne mal testen... (http://mitglied.lycos.de/menager/login.php) Name und PW sind xxx

      cu Benedikt Loepp

      Tschüss markus

      1. Hi,

        hmm wenn ich dann F5 drücke wenn das leere Bild kommt... dann erscheint auf einmal das PW richtig... Wieso klappt es denn erst, wenn ich das zweite Mal die Seite lade...

        Also ich weiss nicht ob ihr das gerade verstanden habt, wie ich das gemeint habe:

        Also ich gebe den Username und das PW ein und es erscheint zunächst ein leeres Bild.. Wenn ich dann F5 zum Aktualisieren drücke, erscheint auf einmal das gewünschte Ergebnis...

        Also: Woran kannes liegen, dass ich immer erst aktualiseiren muss, um das gewünschte Ergebnis zu erzielen??

        Danke

        Markus

      2. Hallo,

        gib doch mal was einfach nur innerhalb des ersten IFs auf, um zu überprüfen oder dort reingesprungen wird - also die Abfrage nach isset() richtig ist.

        Davon ab fehlte hier hinten ne Klammer dran, dann sollte der Parse-Error weg sein:
        if(isset($_POST['username'] && isset($_POST['passwort']))

        cu Benedikt Loepp

      3. Hallo,

        das ist sowieso falsch herum gedacht:

        --------------------------------------------------------
        include_once ("konsatnten.inc.php");

        if (!$_POST["username"] or !$_POST["passwort"])
        {
          put_kopf();
          put_body("tut mir leid, kein Zugang");
          put_foot();
          exit;
        }

        if ($_POST["username"] != "U123" or $_POST["passwort"] != "p789")
        {
          put_kopf();
          put_body("tut mir leid, kein Zugang");
          put_foot();
          exit;
        }
        else
        {
          do_include("all the stuff");
          do_general_headers();
          do_script(0815_hello_world);
        }
        -------------------------------------------

        So sollte es gehen und ist einigermaßen strukturiert

        Grüße

        Tom

        1. Hallo,

          So sollte es gehen und ist einigermaßen strukturiert

          Also über Struktur lässt sich wohl streiten - ich würds schon eher so wie er schreiben:

          if((isset($_POST['username']) and (isset($_POST['passwort'])))
          {
            if(($_POST['username']=="U123") or ($_POST['passwort']=="p789"))
            {
               Zugriff gewährt
            }
            else
            {
              Falsches Benutzername/Passwort-Kombination
            }
          }
          else
          {
            Ungültiger Aufruf
          }

          cu Benedikt Loepp

          1. Oh Entschuldigung Herr Papst,

            So sollte es gehen und ist einigermaßen strukturiert

            Also über Struktur lässt sich wohl streiten - ich würds schon eher so wie er schreiben:

            if((isset($_POST['username']) and (isset($_POST['passwort'])))
            {
              if(($_POST['username']=="U123") or ($_POST['passwort']=="p789"))

            ^
                 da muss dann natürlich AND stehen!

            {
                 Zugriff gewährt
              }
              else
              {
                Falsches Benutzername/Passwort-Kombination
              }
            }
            else
            {
              Ungültiger Aufruf
            }

            So ist es natürlich ganz toll nach Nassi-Shniderman aufgelöst.
            Ich bevorzuge die Variante mit exit, weil die echt Zeit spart. Warum soll der arme Parser den ganzen Mist noch durchlesen, wenn doch sowiewso schon Schluss ist.

            Mir ging es auch eher um die immer benötigten und meistens vernachlässigten Standard-Funktionen

            include()
            header()
            seitenkopf_HTML()
            seitenbody_HTML()
            ...
            seitenfuß_HTML()

            wann man was einfach davorschalten sollte.

            Grüße

            Tom

            1. Hallo,

              Oh Entschuldigung Herr Papst,

              Man, man - da bin ich ja ganz schön aufgestiegen *g*

              if(($_POST['username']=="U123") or ($_POST['passwort']=="p789"))
                                                   ^
                   da muss dann natürlich AND stehen!

              Leider wahr - falsch Copy'n'Pastet und nur die != durch == von dir getauscht^^

              Ansonsten - jeder hat seinen eigenen Programmier-Stil:)

              cu Benedikt Loepp

              1. Hi,

                hmm ich denke nicht, dass es an dem Code liegt.... Aber ich verstehe nicht, wieso wenn man auf den Button drückt, ein leeres Fenster kommt und erst wenn man dann nochmal f5 drückt, der Text, der ausgegeben werden soll, erscheint... Testet es, wenn ihr wollt..

                Vll liegt es ja auch an meinem IE ^^ dass da irgendwo ne Einstellung falsch ist... (URL: http://mitglied.lycos.de/menager/login.php)
                Wenn ihr als PW und als Usernamen xxx eintragt und auf den Button drückt... Erscheint dann bei euch ein Text "PW richtig" ode rmüsst ihr azuch erst F5 drücken (also Aktualisieren), um den Text zu sehen.. Wie kann ich das in den Code einbauen dass er automatisch die Seite neulädt??

                Danke

                Markus

                1. Hallo,

                  mittlerweile lädt er die Passwort-Seite neu wenn man was eintippt und absendet - dann kommt wieder das Formular

                  Ich wollt nämlich grad gucken was andere Browser sagen

                  cu Benedikt Loepp

                  1. Hallo,

                    mittlerweile lädt er die Passwort-Seite neu wenn man was eintippt und absendet - dann kommt wieder das Formular

                    Ups, hatte was getestet ... Aber nun ist es wieder so wie früher ^^

                    cu Benedikt Loepp

                    cu

                    1. Hallo,

                      mittlerweile lädt er die Passwort-Seite neu wenn man was eintippt und absendet - dann kommt wieder das Formular
                      Ups, hatte was getestet ... Aber nun ist es wieder so wie früher ^^

                      Wenn Du die _aktuelle_ Version deines Codes postest, könnte ich dir evtl. sogar helfen ,-)

                      Grüße
                      Frankie

                      1. HUHU

                        also hier der Code der Datei login.php:

                        <html>
                        <head><title></title></head>
                        <body>
                        <form action="log.php" method="post" name="formular">
                        <b>Name:</b><br>
                        <input type="text" name="username">
                        <br><b>Passwort:</b><br>
                        <input type="password" name="passwort">
                        <br><br>
                        <input type="submit" name="submit" value="Anfrage senden">
                        </form>
                        </body>
                        </html>

                        ... und der Code der Datei log.php:

                        <?
                        if(isset($_POST['passwort'], $_POST['username']))
                        {
                        if($_POST['username'] == "xxx" && $_POST['passwort'] == "xxx")
                              {
                                echo "PW richtig";
                                exit;

                        }
                        else
                              {
                                echo "PW falsch";
                                exit;
                              }
                        }
                        ?>

                        Ich hoffe ihr findet den Fehler... Also zu testen ist das ganze unter (http://mitglied.lycos.de/menager/login.php)...
                        Wenn ihr dann xxx und xxx als Usernamen und PW eingebt... dann erscheinz zunächst ein leeres Bild und der Text (PW richtig oder falsch) erscheinz bei mir erst wenn ich dann nochmal F5 drücke zum Aktualisieren... Woran kann das liegen

                        Danke

                        markus

                        1. Hallo HUHU,

                          also hier der Code der Datei login.php:

                          [...]

                          ... und der Code der Datei log.php:
                          <?
                          [1]
                          ?>

                          Also, bin ziemlich enttäuscht von dir, hast nix von dem umgesetzt was dir z.B Benedikt Loepp oder Tom bezüglich deines Codes geschrieben haben.

                          log.php:
                          das ist lediglich der php-code. Da Du das Ganze als HTML wieder ausgeben möchtest, sollstest Du es vielleicht mal so versuchen:

                          <html>
                          <head>
                          <title>Eingelockt oder nicht</title>
                          </head>
                          <body>
                          <?
                          [1]
                          ?>
                          </body>
                          </html>

                          Tripod/Lycos:
                          Bin ziemlich überrascht, daß die php unterstützen, aber validen HTML-Code wirst Du damit niemals hinbekommen, da die mit JS ihre Werbung in deine Seite reinschreiben.
                          Ich nehme schwer an, daß das (notwendige) refresh (F5) damit zusammenhängt.
                          Bei mir (lokal) funktioniert sogar dein invalider code ohne refresh.

                          HTH
                          Frankie

                          1. Hi

                            du glaubst also.. dass es an Lycos liegt, dass es nicht funzt... wäre natürlich denkbar.. Naja, ich will mir sowieso demnächst vernünftigen Webspace ohne Werbung holen :-)). btw welchen Webspace kannst du empfehlen... So 50 MB wären OK, PHP und MySQL müssen unterstützt werden.. Dann möglichst viel Traffic... Naja und auch sonst sollte er für möglichst wenig Geld viel bieten ^^

                            Danke

                            Markus

                            1. Hallo,

                              also ich kann nur All-Inkl (www.all-inkl.de) empfehlen, da hoste ich auch meine Kunden:)

                              Ich hätte auch erst gedacht das das vielleicht an Lycos liegt, allerdings hatte ich da auchmal vorlanger Zeit ne Seite mit PHP/MySQL, da ging eigentlich alles prima - bis auf das der Speicherplatz grottenlahm ist^^

                              cu Benedikt Loepp

                            2. Hi,

                              [...] vernünftigen Webspace ohne Werbung holen :-)). btw welchen Webspace kannst du empfehlen... So 50 MB wären OK, PHP und MySQL müssen unterstützt werden.. Dann möglichst viel Traffic... Naja und auch sonst sollte er für möglichst wenig Geld viel bieten

                              Wenn Benedikt schon andere Erfahrung mit Lycos gemacht haben sollte, auch gut, war auch nur eine Vermutung von mir daß es daran liegen könnte. Was die Lycos-Scripte genau machen habe ich natürlich nicht weiter verfolgt, auf jeden Fall ist dein code niemals valide, da Lycos vor oder nach deinem "eigentlichen" code noch ganz viel Werbung und/oder sonstigen Sch... reinschreibt.

                              Ich habe selbst erst vor kurzem mit php (hobbymässig) angefangen und zum probieren eine domain bei http://www.levanzo.de gehostet. Schlappe 5 EUR im Monat, 300MB Speicher, PHP, MySQL, CGI, etc. und unbegrenzter Traffic. Wie die Performance beim Betrieb einer gutbesuchten Seite ist kann ich aber nicht beurteilen. Für meine Spielereien tuts allemal ;-)

                              Grüsse
                              Frankie