Weiterleitung nach "submit" ?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Weiterleitung nach "submit" ?

    Servus, schaut euch mal diesen Code an.

    Wie mache ich es, das man nach dem Klick auf "Register" zu einer anderen Seite weiter geleitet wird?

    PHP-Code:
    <?
    include 'sessionhelpers.inc.php';
            echo '<form method="post" action="register.php">
            <label>Benutzername:</label><input name="UserName" type="text" id="UserName"><br>
            <label>Passwort: </label><input name="UserPass" type="password" id="UserPass"><br>
            <label>EMail: </label><input name="UserMail" type="text" id="UserMail"><br>
            <input name="register" type="submit" id="register" value="Register">
        </form>';
      $UserName = $_POST["UserName"];
      $UserPass = $_POST["UserPass"];
      $UserMail = $_POST["UserMail"];

      $eintrag = "INSERT INTO users (UserName, UserPass, UserMail) VALUES ('$UserName', MD5('$UserPass'),
      '$UserMail')";

      $eintragen = mysql_query($eintrag);
      ?>

  • #2
    Entweder du nutzt den action-Parameter des Form-Tags und verarbeitest die Daten dann dort, wo immer sie hingesandt werden oder nur schickst den Browser nach der Verarbeitung durch ein header('Location http://example.com'); weiter. Meta-Refresh wäre auch noch eine Möglichkeit, ist aber eher was für die Kleinen.

    Kommentar


    • #3
      wenn ich das ich das mit dem "action"-parameter mache, dann weiss ich nicht genau, an welcher stelle die verarbeitung dann erfolgen muss.

      Nehmen wir mal an, ich mache
      PHP-Code:
      action="start.php" 
      , muss ich dann in die start.php folgendes reinschreiben:?

      PHP-Code:
      <?  $UserName = $_POST["UserName"];
        $UserPass = $_POST["UserPass"];
        $UserMail = $_POST["UserMail"];

        $eintrag = "INSERT INTO users (UserName, UserPass, UserMail) VALUES ('$UserName', MD5('$UserPass'),
        '$UserMail')";

        $eintragen = mysql_query($eintrag);
        ?>
      oder kommt das an ne ganz andere stelle?


      .....ist mein erstes login-script....

      Kommentar


      • #4
        klar weil die daten dann aus dem form an die start.php weitergeleitet werden! ich würde das ganze aber dann in der Start.php in einer If abfrage verpacken. Damit nicht bei jedem aufrufen der start.php ein eintrag in die sqldaten bank erfolgt

        PHP-Code:
        if(isset($_POST['register']) and !empty($_POST['register']))
        {
        // Deine Mysql verarbeitung

        Kommentar


        • #5
          ich würde das formular und die formularverarbeitung in eine date packen. stichwort -> affenformular

          Kommentar


          • #6
            @Edlly:

            Ok, nun klappt das ja schonmal ganz gut. Es wird zur start.php weitergeleitet und auch nur ein einziger Eintrag in die DB vorgenommen.

            Danke erstmal dafür

            Jetzt habe ich leider noch ein Problem mit dem Logout.
            Also hier erstmal die Dateien, die ich verwende:

            register.php
            PHP-Code:
            <?
            include 'sessionhelpers.inc.php';
                    echo '<form method="post" action="start.php">
                    <label>Benutzername:</label><input name="UserName" type="text" id="UserName"><br>
                    <label>Passwort: </label><input name="UserPass" type="password" id="UserPass"><br>
                    <label>EMail: </label><input name="UserMail" type="text" id="UserMail"><br>
                    <input name="register" type="submit" id="register" value="Register">
                </form>';
              ?>
            login.php
            PHP-Code:
            <?
            session_start();
            include 'sessionhelpers.inc.php';
                    echo '<a href="register.php">Anmelden</a>';
            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 '<form method="post" action="login.php">
                    <label>Benutzername:</label><input name="username" type="text"><br>
                    <label>Passwort: </label><input name="userpass" type="password" id="userpass"><br>
                    <input name="login" type="submit" id="login" value="Einloggen">
                </form>';
            else
                echo '<a href="logout.php">Ausloggen</a>';
            echo '<p /><a href="logged_in.php">Check</a><p />';
            echo '<p /><a href="start.php">Start</a><p />';
            $result = mysql_query("SELECT * FROM users") or die ("Fehler");

            if ($result)
            {

            while ($row = mysql_fetch_array ($result))

            {

            print "<b>Du bist eingeloggt als: </b>";
            print $row['UserName'];

            }
            mysql_free_result($result);
            }
            ?>
            logged_in.php
            PHP-Code:
            <?
            session_start();
            include 'sessionhelpers.inc.php';
            echo 'Sie sind ';
            if (!logged_in())
                echo 'nicht ';
            echo 'eingeloggt.<p />';
            echo '<a href="login.php">Start</a>';
            ?>
            sessionhelpers.inc.php
            PHP-Code:
            <?
            function connect()
            {
                $con=mysql_connect('localhost','root','') or die(mysql_error());
                 mysql_select_db('dg001',$con) or die(mysql_error());
            }

            function check_user($name, $pass)
            {
                $sql="SELECT UserId
                FROM users
                WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
                LIMIT 1";
                $result=mysql_query($sql) or die(mysql_error());
                if (mysql_num_rows($result)==1)
                {
                    $user=mysql_fetch_assoc($result);
                    return $user['UserId'];
                }
                else
                    return false;
            }

            function login($userid)
            {
                $sql="UPDATE users
                SET UserSession='".session_id()."'
                WHERE UserId=".$userid;
                 mysql_query($sql);
            }

            function logged_in()
            {
                $sql="SELECT UserId
                FROM users
                WHERE UserSession='".session_id()."'
                LIMIT 1";
                $result=mysql_query($sql);
                  return (mysql_num_rows($result)==1);
            }

            function logout()
            {
                $sql="UPDATE users
                SET UserSession=NULL
                WHERE UserSession='".session_id()."'";
                 mysql_query($sql);
            }

            connect();
            ?>
            start.php
            PHP-Code:
            <?
            session_start();
            include 'sessionhelpers.inc.php';
            if(isset($_POST['register']) and !empty($_POST['register']))
            {
              $UserName = $_POST["UserName"];
              $UserPass = $_POST["UserPass"];
              $UserMail = $_POST["UserMail"];

              $eintrag = "INSERT INTO users (UserName, UserPass, UserMail) VALUES ('$UserName', MD5('$UserPass'),
              '$UserMail')";

              $eintragen = mysql_query($eintrag);
            }
                 echo '<a href="login.php">Klicke hier um dich einzuloggen</a>';
            if (isset($_POST['login']))
            $result = mysql_query("SELECT * FROM users") or die ("Fehler");

            if ($result)
            {

            while ($row = mysql_fetch_array ($result))

            {

            print "<b>Du bist eingeloggt als: </b>";
            print $row['UserName'];

            }
            mysql_free_result($result);
            }
            ?>
            logout.php
            PHP-Code:
            <?
            session_start();
            include 'sessionhelpers.inc.php';
            echo 'Sie sind ';
            if (!logged_in())
                echo 'nicht ';
            echo 'eingeloggt.<p />';
            logout();
            echo 'Sie sind ';
            if (!logged_in())
                echo 'nicht ';
            echo 'eingeloggt.< p/>';
            echo '<a href="login.php">Einloggen</a>';
            ?>
            Wenn ich mich jetzt registriert habe, dann wird ja zur Start.php geleitet.

            Nun sollte dort aber eigentlich dann stehen:

            Du bist eingeloggt als: SHViperia

            (zum Beispiel)

            Da steht aber garnichts.

            Gehe ich nun auf die login.php um mich einzuloggen, steht dann folgendes:


            Du bist eingeloggt als: SHViperia
            Du bist eingeloggt als: Olle
            Du bist eingeloggt als: Spieler1
            Du bist eingeloggt als: Spieler2

            Sollte aber eigentlich nur immer 1 einziger name da stehen.

            Die datenbank habe ich geprüft. Da steht immer nur jeweils eine Session. und bei den anderen accounts ist sie NULL.

            Wo liegt jetzt schonwieder der fehler?

            Kommentar


            • #7
              Original geschrieben von SHViperia

              Wo liegt jetzt schonwieder der fehler?
              Das hast du im login.php genau so programmiert . Am einfachsten schaust du
              zuerst mal an, was sich in diesem skript so alles abspielt, so plus-minus 10 Zeilen
              um die Zeile herum, die den user ausgibt.

              Nun aber noch etwas zum aufbau des register.php. Du hast zuerst das Formular,
              dann die Verarbeitung, so wie es sich auch zeitlich präsentiert. Viel besser wäre es
              aber, zuerst die Verarbeitung zu skripten und dann das Formular auszugeben.

              Viel Glück.

              Kommentar


              • #8
                Noch als tip, möglicherweise hast du bloss im "select * from user" eine
                "where session=..." programmieren wollen.

                Kommentar


                • #9
                  Ja genau, es soll der Name der aktuellen Session angezeigt werden.

                  Kommentar


                  • #10
                    Original geschrieben von SHViperia
                    Ja genau, es soll der Name der aktuellen Session angezeigt werden.
                    Tipp: versuche mal im Login.php die folgende Variante anstatt der Zeile
                    result = mysql_query("SELECT * FROM users") or die ("Fehler");


                    result = mysql_query("SELECT * FROM users WHERE UserId=$userid") or die ("Fehler");



                    [ontopic]
                    wie im alten Rom und im Nazireich machen Verbannte die Arbeit, die
                    Herren haben bloss die Peitsche. @slava wie ist nochmals die russische php-Seite?
                    vielleicht geht es im Archipelaggulag более по-человечески zu
                    [/offtopic]
                    Zuletzt geändert von begun_m; 15.10.2006, 10:28.

                    Kommentar


                    • #11
                      Im Start.php kannst du folgende Erweiterung versuchen, anstelle der Zeile
                      $result = mysql_query("SELECT * FROM users") or die ("Fehler");

                      $result = mysql_query("SELECT * FROM users where UserName=$UserName") or die ("Fehler");
                      Zuletzt geändert von begun_m; 15.10.2006, 10:15.

                      Kommentar


                      • #12
                        Danke vielmals, jetzt klappts ganz gut.

                        Kommentar


                        • #13
                          Original geschrieben von SHViperia
                          Danke vielmals, jetzt klappts ganz gut.

                          Bitte gern geschehen, trotz dem Spinner_mod wahsaga, der mich jedesmal rauswirft (bannt),
                          selber die Anfrage aber nicht bearbeiten könnte.

                          Kommentar


                          • #14
                            Komm doch zu meiner seite...ich brauche noch fähige leute, die lust haben zu helfen...ganz ohne zwang und zeitdruck ^^

                            www.webmasters-ressource.de

                            daraus soll mal großes werden.....vllt umso besser mit deiner hilfe

                            Forum installiere ich dann noch wenn zeit ist.

                            Kommentar


                            • #15
                              Ja, bitte tu uns den Gefallen.

                              Kommentar

                              Lädt...
                              X