Benutzerverwaltung
Andreas
- php
Hallo,
ich möchte folgendes machen:
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
Hab noch was vergessen:
$cookie = $db_id.';'.$db_pass;
Gruß Andreas
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
Hallo,
danke für die Antwort, werde mich mal durch den Link durchlesen.
Falls noch Fragen melde ich mich wieder - garantiert ;-)
Gruß Andreas
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
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
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
Hallo,
aus $HTTP_POST_VARS["username"]; wir $_POST["username"];
Danke an Tom, hab den Fehler nicht gesehen ;)
MFG
Andavos
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
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
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
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
Hallo,
was willst du mit der Session id?
Jeder User bekommt automatisch eine Session ID zugewiesen
MFG
Andavos