 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
23.10.2002, 16:37
|
#1
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
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).
|
|
|
25.10.2002, 15:52
|
#2
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
@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
|
|
|
25.10.2002, 17:27
|
#3
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
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
|
|
|
25.10.2002, 21:10
|
#4
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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
|
|
|
25.10.2002, 22:09
|
#5
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
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
|
|
|
26.10.2002, 22:43
|
#6
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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
|
|
|
30.10.2002, 21:28
|
#7
|
|
TP-Supporter
Registriert seit: Jul 2002
Ort: nahe dem Harz
|
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;
}
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:05 Uhr.
|
 |