getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 23.10.2002, 16:37   #1
TP-Specialist
 
Benutzerbild von theo
 
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
theo bringt sich richtig ein
Question

wie erstelle ich einen login/logout bei einer seite


urspruenglicher text:
____________________________

der horror geht weiter

ich moechte gern, dass sich leute in eine seite mit unterschiedlichen namen und pw einloggen (und vielleicht auch unterschiedliche rechte bekommen) koennen.
dazu soll das ganze auch als "who is online" genutzt werden koennen. welcher benutzer ist gerade auch auf der seite ist soll man sehen koennen (vielleicht sogar in abhaengigkeit von den rechten) und dann natuerlich auch eine begruessung abhaengig vom login (wie bei einem forum), um sehen zu koennen, ob man korrekt eingelogged ist.

soviel erstmal zu meinem problem.
____________________________

so ... nun versuche ich es nochmal ...

wie muss ich ein php-script und eine db aufbauen, damit ich unterschiedlichen usern der seite verschiedene rechte zuweisen kann, die anzahl der momentanen "online-user" anzeigen und deren namen ausgeben lassen kann?

wer nicht registriert ist, soll automatisch einen "gast"- oder "besucher"-status bekommen. die anderen je nach namen.

jetzt besser?


gruss,
theo

Geändert von theo (25.10.2002 um 12:32 Uhr).
theo ist offline   Mit Zitat antworten


Alt 25.10.2002, 15:52   #2
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein


@userrechte: kommt ganz darauf an, wie granular du die rechte verteilen willst.
einfachster fall: user kann sich einloggen und sieht seine datensätze und kann neue eingeben.
da schleppst du in den datentabellen einfach eine userid mit, nachder du einfach in jedem admin-formular einschränkst.
dann setzt du dir noch einen admin, der z.b. in eine session den status admin oder wie auch immer bekommt.

den select baust du dir dann so:

$rechte =$_SESSION[user]=='admin'?"":" WHERE userID=".$_SESSION[user];

$sql = "select * from tabelle ."$rechte;

wird es detaillierter, musst du dir eine beziehungstabelle aufbauen, die dir sagt, was welcher user wo machen darf. bestes beispiel ist das unix-rechtesystem. wenn du dich an diese logik hältst kannst du ein ganz brauchbares system entwickeln.

@ logged in oder so. da fällt mir jetzt auf die schnelle keine lösung ein.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 25.10.2002, 17:27   #3
TP-Specialist
 
Benutzerbild von theo
 
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
theo bringt sich richtig ein

es waere sehr schoen ...


und vor allem hilfreich, wenn ich mal so einen tabellenaufbau sehen koennte.
wie kann man die sache regeln, dass unterschiedliche rechte ueber eine db verwaltet werden?
ich kann mir immer noch nicht so richtig vorstellen, wie das gehen soll, wenn spaeter die leute einen automatisch generierten code zu ihrem login bekommen sollen.

gruss,
theo
theo ist offline   Mit Zitat antworten
Alt 25.10.2002, 21:10   #4
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
da wär mal wichtig, dass du mitteilst wie du dir dein rechtesystem vorstellst. (s.o.)
dann können wir über die tabellenstruktur reden...

und was verstehst du unter automatisch generiertem code?
soll das passwort automatisch vergeben werden?
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 25.10.2002, 22:09   #5
TP-Specialist
 
Benutzerbild von theo
 
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
theo bringt sich richtig ein

also ...


fuer den anfang sollen die leute sich mit einem eigenen nick (nicht doppelt vergeben) einloggen koennen.
was die rechte angeht, so soll es einen admin geben, der alles ueberschauen und alles aendern darf. dann soll es eine art supervisor-status geben, aehnlich den moderatoren im forum, die sachen aendern duerfen, aber nicht in alles schauen duerfen.
dann soll es user geben, die lediglich ihre daten aendern koennen sollen. und, schlussendlich sollen da die besucher oder gaeste sein. die komme einfach herein, werden gezaehlt und haben gar keine rechte, ausser die seiten ansehen.
aber ... es waere ja wohl sinnlos, wenn es nicht seiten gaebe, die nicht fuer alle zugaenglich waeren.

das ganze ist eine idee fuer eine art firmendatenbank. die leute, die registrierte user sind, soll leistungen anbieten oder in einer art forum auf angebote reagieren koennen. damit die reaktionen und angebote serioes bleiben, sollen nur leute bieten oder annehmen koennen, die eine funktionierende email-adresse angegeben haben ... also registrierte user sind.
also unterschiedliche rechte, fuer verschiedene gruppen von usern.

was die passwoerter angeht, so sollen sie beim registrieren automatisch generiert und an die angegebene email-adresse geschickt werden. ob die leute ihre passwoerter aendern koennen sollen, weiss ich noch nicht und ist auch im moment nicht interessant.

ich weiss, ich hab ne menge vor. aber schritt fuer schritt wird es schon werden.

gruss,
theo
theo ist offline   Mit Zitat antworten
Alt 26.10.2002, 22:43   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
Zitat:
ich weiss, ich hab ne menge vor. aber schritt fuer schritt wird es schon werden.
ja, du hast da eine GEWALTIGE menge vor. und nachdem ich mir deine anderen fragen durchgelesen hab, die die letzten tage reigekommen sind, sage ich dir, du hast nicht die skills dazu solch ein komplexes thema wirklich in angemessener zeit durchzuziehen.

ich hab lange überlegt, wie ich das schreiben kann oder soll. verstehe diese post bitte nicht als 'schuster bleib bei deinen leisten'. ich wünsch dir ein zügiges vorankommen in sachen php und werde dich auch weiterhin bei kleineren wehwechen unterstützen. aber das was du da vorhast, denke ich würde dein gegenwärtiges wissen in sachen php und meinen zeitrahmen, dir dieses wissen beizubringen massivst sprengen.
um eine funktionierende feingranulare userberechtigungsstruktur aufzubauen bedarf es meiner erfahrung nach an profunden kenntnissen in sachen php, html, formularverarbeitung, datenbanktechnik und einer grossen portion an projekterfahrung. denn genau diese bedarf es um vorab - bevor eine zeile code geschrieben wurde - die struktur der applikation feszulegen und die abläufe zu definieren.

theo, ich werde dir hier empfehlen entweder eine einfachere variante der userverwaltung zu implementieren (siehe mein post oben) oder auf ein standardscript zurückzugreifen das diese funktionaltiäten bietet. schau mal bei hotscripts oder ähnlichem nach, vielleicht findest du was, womit du starten kannst.

was die anderen beiden punkte betrifft:
@login: da wurde wirklich schon eine vielzahl an posts abgestellt. einfach mal suchen...

@crypt: auch hierzu hat es ein paar gute threads gegeben, wie man automatisch ein passwort generieren kann.


ich hoffe, du bist mir jetzt nicht zu böse, dass ich meinerseits diesen thread für mich beende. ich wünsch dir trotzdem viel glück für dein vorhaben.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 30.10.2002, 21:28   #7
TP-Supporter
 
Benutzerbild von taco
 
Registriert seit: Jul 2002
Ort: nahe dem Harz
taco macht alles soweit korrekt
Ehrlich du bist gut, kann meinem Vorredner nur Recht geben und damit du weisst auf was du dich da eingelassen hast, mal ein Script aus welchem sich User registrieren können, die Funktion mit automatischer Passwortvergabe und Zustellung per Mail ist bereits eingebaut.

Jetzt musst du nur noch die passende Tabelle in einer Datenbank dazu bauen, also die kann ich dir nicht geben, da bereits Userdaten drin. Schau dich einfach mal bei www.netz-id.de um, dort lädst du dir das neue Nuke Projekt runter und stöberst mal im Code der Scripte und in den Datenbanken.

Der Code ist gekürzt und zwar um mehr als die Hälfte.

Tut mir echt leid, ist aber ein mächtiges Thema, welches man eigentlich nicht so eben in einem Forum erklärt bekommt.

<?php


if(!isset($mainfile)) { include("main.php"); }

function nav() {
global $userimg;
echo "<table border=\"0\" cellpadding=\"15\" align=\"center\"><tr><td>";

echo "<font class=\"content\">"
."<center><a href=\"user.php?op=edituser\"><img src=\"$userimg/info.gif\" border=\"0\" alt=\""._CHANGEYOURINFO."\"></a><br>"
."<a href=\"user.php?op=edituser\">"._CHANGEYOURINFO."</a>"
."</center></font></td>";

echo "<td><font class=\"content\">"
."<center><a href=\"user.php?op=edithome\"><img src=\"$userimg/home.gif\" border=\"0\" alt=\""._CHANGEHOME."\"></a><br>"
."<a href=\"user.php?op=edithome\">"._CHANGEHOME."</a>"
."</center></form></font></td>";

echo "<td><font class=\"content\">"
."<center><a href=\"user.php?op=editcomm\"><img src=\"$userimg/comments.gif\" border=\"0\" alt=\""._CONFIGCOMMENTS."\"></a><br>"
."<a href=\"user.php?op=editcomm\">"._CONFIGCOMMENTS."</a>"
."</center></form></font></td>";

echo "<td><font class=\"content\">"
."<center><a href=\"user.php?op=chgtheme\"><img src=\"$userimg/themes.gif\" border=\"0\" alt=\""._SELECTTHETHEME."\"></a><br>"
."<a href=\"user.php?op=chgtheme\">"._SELECTTHETHEME."</a>"
."</center></form></font></td>";

echo "<td><font class=\"content\">"
."<center><a href=\"user.php?op=logout\"><img src=\"$userimg/exit.gif\" border=\"0\" alt=\""._LOGOUTEXIT."\"></a><br>"
."<a href=\"user.php?op=logout\">"._LOGOUTEXIT."</a>"
."</center></form></font>";

echo "</td></tr></table>\n";
}

function userCheck($uname, $email) {
global $stop, $prefix;
if ((!$email) || ($email=="") || (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email))) $stop = "<center>"._ERRORINVEMAIL."</center><br>";
if (strrpos($email,' ') > 0) $stop = "<center>"._ERROREMAILSPACES."</center>";
if ((!$uname) || ($uname=="") || (ereg("[^a-zA-Z0-9_-]",$uname))) $stop = "<center>"._ERRORINVNICK."</center><br>";
if (strlen($uname) > 25) $stop = "<center>"._NICK2LONG."</center>";
if (eregi("^((root)|(adm)|(linux)|(webmaster)|(admin)|(god)|(administrator)|(administrador)|(nobody)|(anonymous)|(anonimo)|(anónimo)|(operator))$",$uname)) $stop = "<center>"._NAMERESERVED."";
if (strrpos($uname,' ') > 0) $stop = "<center>"._NICKNOSPACES."</center>";
if (mysql_num_rows(mysql_query("select uname from $prefix"._users." where uname='$uname'")) > 0) $stop = "<center>"._NICKTAKEN."</center><br>";
if (mysql_num_rows(mysql_query("select alias from $prefix"._chatusers." where alias='$uname'")) > 0) $stop = "<center>"._NICKTAKEN."</center><br>";
if (mysql_num_rows(mysql_query("select email from $prefix"._users." where email='$email'")) > 0) $stop = "<center>"._EMAILREGISTERED."</center><br>";
return($stop);

}


function makePass() {
$makepass="";
$syllables="er,in,tia,wol,fe,pre,vet,jo,nes,al,len,son,cha,ir,ler,bo,ok,tio,nar,sim,ple,bla,ten,toe,cho,co,lat,spe,ak,er,po,co,lor,pen,cil,li,ght,wh,at,the,he,ck,is,mam,bo,no,fi,ve,any,way,pol,iti,cs,ra,dio,sou,rce,sea,rch,pa,per,com,bo,sp,eak,st,fi,rst,gr,oup,boy,ea,gle,tr,ail,bi,ble,brb,pri,dee,kay,en,be,se";
$syllable_array=explode(",", $syllables);
srand((double)microtime()*1000000);
for ($count=1;$count<=4;$count++) {
if (rand()%10 == 1) {
$makepass .= sprintf("%0.0f",(rand()%50)+1);
} else {
$makepass .= sprintf("%s",$syllable_array[rand()%62]);
}
}
return($makepass);
}

function confirmNewUser($uname, $email, $url, $user_avatar, $user_icq, $user_occ, $user_from, $user_intrest, $user_sig, $user_viewemail, $user_aim, $user_yim, $user_msnm) {
global $stop, $EditedMessage;
include("header.php");
filter_text($uname);
$uname = $EditedMessage;
if($user_viewemail == 1) {
$user_viewemail = "1";
} else {
$user_viewemail = "0";
}
userCheck($uname, $email);
if (!$stop) {
OpenTable();
echo ""._UUSERNAME.": $uname<br>"
.""._EMAIL.": $email<br>";
if (($user_avatar) || ($user_avatar!="")) echo ""._AVATAR.": <img src=\"images/forum/avatar/$user_avatar\" alt=\"\"><br>";
if (($url) || ($url!="")) echo ""._WEBSITE.": $url<br>";
if (($user_icq) || ($user_icq!="")) echo ""._ICQ.": $user_icq<br>";
if (($user_aim) || ($user_aim!="")) echo ""._AIM.": $user_aim<br>";
if (($user_yim) || ($user_yim!="")) echo ""._YIM.": $user_yim<br>";
if (($user_msnm) || ($user_msnm!="")) echo ""._MSNM.": $user_msnm<br>";
if (($user_from) || ($user_from!="")) echo ""._LOCATION.": $user_from<br>";
if (($user_occ) || ($user_occ!="")) echo ""._OCCUPATION.": $user_occ<br>";
if (($user_intrest) || ($user_intrest!="")) echo ""._INTERESTS.": $user_intrest<br>";
if (($user_sig) || ($user_sig!="")) echo ""._SIGNATURE.": $user_sig<br>";
echo "<form action=\"user.php\" method=\"post\">"
."<input type=\"hidden\" name=\"uname\" value=\"$uname\">"
."<input type=\"hidden\" name=\"email\" value=\"$email\">"
."<input type=\"hidden\" name=\"user_avatar\" value=\"$user_avatar\">"
."<input type=\"hidden\" name=\"user_icq\" value=\"$user_icq\">"
."<input type=\"hidden\" name=\"url\" value=\"$url\">"
."<input type=\"hidden\" name=\"user_from\" value=\"$user_from\">"
."<input type=\"hidden\" name=\"user_occ\" value=\"$user_occ\">"
."<input type=\"hidden\" name=\"user_intrest\" value=\"$user_intrest\">"
."<input type=\"hidden\" name=\"user_sig\" value=\"$user_sig\">"
."<input type=\"hidden\" name=\"user_aim\" value=\"$user_aim\">"
."<input type=\"hidden\" name=\"user_yim\" value=\"$user_yim\">"
."<input type=\"hidden\" name=\"user_msnm\" value=\"$user_msnm\">"
."<input type=\"hidden\" name=\"user_viewemail\" value=\"$user_viewemail\">"
."<input type=\"hidden\" name=\"op\" value=\"finish\"><br><br>"
."<input type=\"submit\" value=\""._FINISH."\"></form>";
CloseTable();
} else {
OpenTable();
echo "<center><font class=\"title\"><b>Registration Error!</b></font><br><br>";
echo "<font class=\"content\">$stop<br>"._GOBACK."</font></center>";
CloseTable();
}
include("footer.php");
}

function finishNewUser($uname, $email, $url, $user_avatar, $user_icq, $user_occ, $user_from, $user_intrest, $user_sig, $user_viewemail, $user_aim, $user_yim, $user_msnm) {
global $stop, $makepass, $EditedMessage, $system, $adminmail, $sitename, $Default_Theme, $prefix;
include("header.php");
userCheck($uname, $email);
$user_regdate = date("M d, Y");
if (!isset($stop)) {
$makepass=makepass();
if(!$system) {
$cryptpass=crypt($makepass);
} else {
$cryptpass=$makepass;
}
taco ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
login/logout bei einer seite login/logout bei einer seite
« [php] str_replace | Voting System »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:05 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67