Andreas: Benutzerverwaltung

Hallo,
ich möchte folgendes machen:

  • User registriert sich
  • User logt sich ein
  • User bearbeitet sein Profil

Das mit dem registrieren klappt schon. Der Login nur Teilweise:

Global $SQL1, $form_user, $form_pass, $COOKIEpath, $COOKIEdns, $IS_SS, $COOKIElife, $COOKIEuser,$db_user, $COOKIEpass;
$BLOCKLEVEL = 0;
$form_pass = md5($form_pass);
$sql_user = $SQL1->putquery("SELECT id, name,password,status,loginfail FROM stammtischuser WHERE name = '$form_user'");
$db_id = @mysql_result($sql_user,0,"id");
$db_user = @mysql_result($sql_user,0,"name");
$db_pass = @mysql_result($sql_user,0,"password");
$db_stat = @mysql_result($sql_user,0,"status");
$db_fail = @mysql_result($sql_user,0,"loginfail");
if ( $form_user == $db_user && md5($form_pass) == $db_pass && $db_stat != $BLOCKLEVEL ){
setcookie("AccessStammtisch", $cookie, time()+12 * 3600, "/");
$uin = strtoupper(md5(rand()));
$SQL1->putquery("UPDATE stammtischuser SET online = '1', logintime = NOW(), session = '$uin' WHERE name = '$db_user'");
}

Soweit im wesentlichen der Code des Login2.
Der Eintrag in die Datenbank funktioniert, aber es wird kein Cookie abgesetzt.
Ich weiß auch nicht genau wie ich das mit dem Profil mache, dass der User erkannt wird etc. Hab diesbezüglich noch nicht viel Ahnung.
Wäre auch super wenn mir jemand ein Tutorial o.ä. zum Thema Benutzerverwaltung/Usermanagement nennen könnte. Das Buch von S. Wigard gibt diesbezüglich nicht viel her, ist ja auch nur ein Einsteigerseminar. Für einen guten Buchtip das  dieses Thema beinhaltet, bin ich auch zu haben. Dann muss ich auch nicht mehr so viel posten ;-)

Gruß Andreas

  1. Hab noch was vergessen:
    $cookie = $db_id.';'.$db_pass;

    Gruß Andreas

    1. Hallo,

      also hier mal die grundsätze:
      Mach mal am besten ein Login mit Sessions:
      http://www.rpgcommunity.de/clanwissen/p_e_login_sessions.php

      In dem Session sollte am besten der Username bzw. die ID gespeichert werden.

      Dann fragst du deine Profil-Datenbank ab mit:
      ... WHERE id LIKE '$_SESSION[userid]'

      Diese Werte gibst du dann in Formularen aus.
      Später kann man das dann genauso wieder speichern.

      Alles verstanden?

      MFG
      Andavos

      --
      http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
      1. Hallo,
        danke für die Antwort, werde mich mal durch den Link durchlesen.
        Falls noch Fragen melde ich mich wieder - garantiert ;-)

        Gruß Andreas

        1. Hallo,
          da ist irgend ein Fehler in deinem Script:

          if($was == "username")
          $username = $HTTP_POST_VARS["username"];

          {
             $_SESSION['username'] = $username;
             echo "Login erfolgreich <a href="?was=status">weiter</a>";
             }

          Muss das so heißen? Oder wie solls richtig sein?

          Gruß Andreas

          1. Hello,

            if($was == "username")      # wo kommt das $was her?

            # fehlt hier vielleicht eine Klammer?

            $username = $_POST["username"];

            {  # wozu die Klammer?

            $_SESSION['username'] = $username;
                echo "Login erfolgreich <a href="?was=status">weiter</a>";

            }

            Wenn man schon $_SESSION benutzt (was OK ist) dann sollte man auch $_POST benutzen.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Hallo Tom,
              der Code Kommt von Andavos, der mir zuerst geantworter hat.

              Wenn man schon $_SESSION benutzt (was OK ist) dann sollte man auch $_POST benutzen

              Wie meinst du das, etwa so:
              $username = $HTTP_POST_VARS["username"];
              $userpass = $HTTP_POST_VARS["userpass"];

              Gruß Andreas

              1. Hallo,

                aus $HTTP_POST_VARS["username"]; wir $_POST["username"];

                Danke an Tom, hab den Fehler nicht gesehen ;)

                MFG
                Andavos

                --
                http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                1. Hallo,

                  aus $HTTP_POST_VARS["username"]; wir $_POST["username"];

                  also so funktionierts nicht.
                  Mit dem alten Script funktionierts es jetzt endlich.

                  Gruß und vielen Dank,
                  Andreas

                  1. Hallo,
                    also $HTTP_POST_VARS muss bei PHP Versionen unter 4.1.0 benutzen. Wenn man 4.1.0 hat, geht beides, man sollte aber $_POST benutzen, muss man aber nicht, die längere Version geht auch.

                    Wenn du eine ältere Version als 4.1.0 benutzt solltest du $HTTP_SESSION_VARS benutzen, anstatt $_SESSION

                    MFG
                    Andavos

                    --
                    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
                    1. Hello,

                      also $HTTP_POST_VARS muss bei PHP Versionen unter 4.1.0 benutzen. Wenn man 4.1.0 hat, geht beides, man sollte aber $_POST benutzen, muss man aber nicht, die längere Version geht auch.

                      Wenn du eine ältere Version als 4.1.0 benutzt solltest du $HTTP_SESSION_VARS benutzen, anstatt $_SESSION

                      Beide Versionen werden auch noch in PHP 5 unterstützt, nur dass man die lange endlich abschalten kann. Es sind ja redundante Arrays, die nach der Initialisierung nichts mehr miteinander zu tun haben. Außerdem sind $HTTP_SESSION_VARS, $HTTP_POST_VARS, ...,  nur "normal" global, müssen also in jeder Funktion erst mit global deklariert werden und vorher außerhalb der Funktion auf Existenz geprüft werden (sonst gehen sie wieder verloren). Die kurzen Varianten sind "superglobal", das bedeutet, dass sie aufgrund ihrer besonderen Bedeutung im gesamten Script zur Verfügung stehen.

                      Liebe Grüße aus http://www.braunschweig.de

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          2. Hallo,
            noch ne Frage:
            wie bekomme ich die SessionID oder muss ich die selbst definieren?
            Im alten Script habe ich das so gemacht: $uin = strtoupper(md5(rand()));

            Gruß Andreas

            1. Hallo,

              was willst du mit der Session id?

              Jeder User bekommt automatisch eine Session ID zugewiesen

              MFG
              Andavos

              --
              http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr