Login mit Hilfe von PHP und mySQL (konflikt mit anderem Script)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Login mit Hilfe von PHP und mySQL (konflikt mit anderem Script)

    Hallo,
    erstemal danke für die guten Tipps und Tricks die Ihr hier freigebt!

    Ich habe ein Login Bereich nach dem Tutorial von mrhappiness gemacht.

    Funzt alles prima.

    Nach dem Login includiere ich einen Bereich mit einem neuen Formular welches beim Absenden von PHP validiert wird (sollte).

    Alleine stehend funzt beides prima. Aber in Kombi haut es mich beim Absenden immer wieder zurück zum Login Formular.

    Hier ein paar Ausschnitte:

    <?
    session_start();
    include 'libraries/sessionhelpers.inc.php';
    if (isset($_POST['login']))
    {
    $userid=check_user($_POST['username'], $_POST['userpass']);
    if ($userid!=false)
    login($userid);
    else
    echo 'Ihre Anmeldedaten waren nicht korrekt!';
    }
    if (!logged_in())
    echo '<div style="margin-left: 100px;">
    <form method="post" action="gutschein_flug.php">
    <label>Benutzer: </label><input name="username" type="text" id="userpass" class="eintipp" /><br />
    <label>Passwort: </label><input name="userpass" type="password" id="userpass" class="eintipp" /><br /><br />
    <img src="img/spacer.gif" alt="" width="85" height="1" /><input name="login" type="submit" id="login" value="Anmelden" />
    </form></div>';
    else
    echo '<p style="text-align: right;"><a href="logout.htm"><b>Abmelden</b></a></p>';
    if (logged_in())
    include 'gutschein/gutschein_formular.php';
    ?>

    --------------------------------------------------------------

    In der Includierten steht im Formular:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

    -------------------------------------------------------------

    Könnte da das Problem liegen?

    Bitte um Hilfe...
    Danke im Voraus

  • #2
    Re: Login mit Hilfe von PHP und mySQL (konflikt mit anderem Script)

    if (isset($_POST['login'])) - wenn es in den gePOSTeten Daten keinen Eintrag unter dem Feldnamen login gibt, dann wird wieder deine Meldung ausgegeben.

    Überlege dir also eine Möglichkeit, die beiden unterschiedlichen Formulare voneinander zu unterscheiden - beispielsweise über ein verstecktes Formularfeld, auf dessen Vorhandensein in den Daten du dann abprüfst.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Macht Sinn...

      Danke für die schnelle Antwort.

      D.H.:
      in die zwei Formulare muss ich nun schonmal folgendes einbinden:

      ...
      <input type="hidden" name="Formularnummer" value="A" />
      <label>Benutzer: </label><input name="username" type="text" id="userpass" class="eintipp" /><br />
      ...

      und in des zweite z.B.:
      ...
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
      <input type="hidden" name="Formularnummer" value="B" />
      ...

      ----------------------------------------------------------

      Hab das Problem schonmal begriffen, aber ganz ehrlich gesagt weiß ich nicht wie ich es umsetzen soll...

      Hatte die Idee von einer If else Abfrage, aber irgendwie weiß ich nicht so recht wo ich die platzieren soll und wie ich den Bezug zu dem Feld "login" bringen soll.

      Über einen kleinen Schubser in die richtige Richtigung wäre ich sehr dankbar... Bin kein PHP Profi, deswegen überseh ich wahrscheinlich grad den einfachen Weg

      Sorry, aber steh grad etwas aufem Schlauch

      Kommentar


      • #4
        den kleinen Schubser hast im Beitrag von Wahsaga schon erhalten.

        Noch mehr zu sagen würde bedeuten Dir das Script umzuschreiben.

        Kommentar


        • #5
          Ist denn mein Gedankenansatz wenigstens richtig gewesen?
          Oder hab ich's total falsch verstanden?

          Kommentar


          • #6
            Dir fehlen die Grundlagen:

            http://tut.php-q.net/formulare.html

            Kommentar


            • #7
              Wenn ich in dem Loginformular als methode "get" eingebe (nur um zu testen) passiert das gleiche wie vorher...

              laut den Grundlagen sollten sich die zwei Formulare doch dann unterscheiden, oder nicht...

              Kommentar


              • #8
                Original geschrieben von Mind_Power
                Wenn ich in dem Loginformular als methode "get" eingebe (nur um zu testen) passiert das gleiche wie vorher...
                Und die Abfrage im Script, die von per POST übermittelten Werten ausgeht, hast du dabei ebenfalls angepasst?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Ja, klar...
                  sieht jetzt so aus:
                  ----------------------------------------

                  <?
                  session_start();
                  include 'libraries/sessionhelpers.inc.php';
                  if (isset($_GET['login']))
                  {
                  $userid=check_user($_GET['username'], $_GET['userpass']);
                  if ($userid!=false)
                  login($userid);
                  else
                  echo 'Ihre Anmeldedaten waren nicht korrekt!';
                  }
                  if (!logged_in())
                  echo '<div style="margin-left: 100px;">
                  <form method="GET" action="gutschein_flug.php">
                  <label>Benutzer: </label><input name="username" type="text" id="userpass" class="eintipp" /><br />
                  <label>Passwort: </label><input name="userpass" type="password" id="userpass" class="eintipp" /><br /><br />
                  <img src="img/spacer.gif" alt="" width="85" height="1" /><input name="login" type="submit" id="login" value="Anmelden" />
                  </form></div>';
                  else
                  echo '<p style="text-align: right;"><a href="logout.htm"><b>Abmelden</b></a></p>';
                  if (logged_in())
                  include 'gutschein/gutschein_formular.php';
                  ?>

                  Kommentar


                  • #10
                    Schau dir über print_r($_GET) an, welche Daten dein Script bekommt - und schau dann, ob der Scriptablauf dem entspricht.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Array ( [username] => xxxxx [userpass] => xxxxxx [login] => Anmelden )

                      Also für mich sieht alles okay aus...
                      ich glaub ich geb bald auf...


                      Hab mir jetzt schon total den Kopf zermantscht, aber ich seh keine Logik...

                      Kommentar


                      • #12
                        Und der Aufruf von check_user() liefert was zurück?
                        Debugausgaben innerhalb dieser Funktion brachten welche Erkenntnis?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Aufruf von check_user()??? Wie meinst Du das? Hab's doch übernommen...
                          Debugausgaben??? Keine Ahnung wie ich die Anzeigen lassen soll.
                          Okay - bin wohl an meine Grenzen angelangt!

                          Vielen dank für Eure Mühe
                          Schade, dass es nix gebracht hat...

                          Bin wohl doch zu blöd

                          Ciao

                          Kommentar


                          • #14
                            Wollte ne PM schicken, geht net...

                            Was willsten für's anpassen haben?
                            Ich brauch das Script funktionstüchtig und weiß echt net mehr was ich noch machen soll ...

                            Kommentar


                            • #15
                              Schreib direkt nach session_start(); mal
                              PHP-Code:
                              echo session_name().' = '.session_id().'<br />'
                              Schreib vor die Zeile mit check_user mal
                              PHP-Code:
                              echo 'Prüfen der Logindaten'
                              Kommt diese Zeile beim Abschicken des Loginformulars?

                              Kommt diese Zeile beim Abschicken des zweiten Formulars?


                              Poste bitte mal die komplette Ausgabe dieser zwei Zeilen bei:
                              - 1. Aufruf der Seite (alle browserfenster vorher schließen)
                              - Nach Abschicken des Loginformulars
                              - Nach Abschicken des zweiten Formulars
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X