Frontend Usersystem Modul

eTrax
Beiträge: 14
Registriert: Fr 2. Jan 2004, 19:25
Wohnort: Hilden
Kontaktdaten:

Frontend Usersystem Modul

Beitrag von eTrax »

So, das Login-Modul ist fertigstellt und funktioniert bereits prima, als nächstes folgt das User-Center.

Konstruktive Kritik und Verbesserungs-/Erweiterungsvorschläge erwünscht.

Code: Alles auswählen

Installation:

In der cfg_sql.inc.php folgende Zeile anfügen:
$cfg["tab"]["cfuser_mod"]			= $cfg['sql']['sqlprefix']."fuser_mod";

Danach eine weitere Tabelle anlegen:
CREATE TABLE `con_fuser_mod` (
  `id` tinyint(4) NOT NULL auto_increment,
  `userid` tinytext NOT NULL,
  `password` tinytext NOT NULL,
  `username` tinytext NOT NULL,
  `email` tinytext NOT NULL,
  `trustlevel` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Als nächstes einen neuen Baum definieren, dort wird das
User-Center abgelegt.
Das neue Login-Modul statt dem alten Modul einbinden.

Im Layout/Modul ist nun über das Abfragen des trustlevel ein
Zugriffsschutz möglich:
z.B.: Container nur Anzeigen, wenn trustlevel>="1"
<?php if($fuser_mod_trustlevel>="1"){?>CMS_CONTAINER[x]<?php } ?>
z.B.: Container[x] nur Anzeigen, wenn trustlevel>="1", ansonsten Container[y]
<?php if($fuser_mod_trustlevel>="1"){?>CMS_CONTAINER[x]<?php }else{?>CMS_CONTAINER[y]<?php } ?>

/**
 * fuser_mod_login
 *
 * INPUT
 *
 * Contenido-Version: 4.4.2
 * Modul-Version: 0.3b
 *
 * @autor Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 * @modified by Martin Hoffmann <martin.hoffmann@gmx.net>
 * @copyright 2004
 */

echo"
<table cellspacing=\"0\" cellspacing=\"0\" cellpadding=\"4\">
    <tr>
        <td class=\"text\">Baum des Usercenters w&auml;hlen:</td>
        <td>
            <select name=\"CMS_VAR[0]\">
";
            if("CMS_VALUE[0]" != "0" && "CMS_VALUE[0]" !=""){
             echo"<option value=\"0\">--- kein ---</option>";
            }
            else
            {
             echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
            }
                $sql = "SELECT
                            A.idcat,
                            C.name
                        FROM
                            ".$cfg["tab"]["cat_tree"]." AS A,
                            ".$cfg["tab"]["cat"]." AS B,
                            ".$cfg["tab"]["cat_lang"]." AS C
                        WHERE
                            A.idcat     = B.idcat AND
                            B.idcat     = C.idcat AND
                            C.idlang    = '".$lang."' AND
                            B.idclient  = '".$client."' AND
                            C.visible   = 1 AND
                            A.level     = '0'
                        ORDER BY
                            A.idtree";

                $db->query($sql);

                while ( $db->next_record() ) {

                    if ( "CMS_VALUE[0]" == $db->f("idcat") ) {
                        echo '<option selected="selected" value="'.$db->f("idcat").'">'.$db->f("name").'</option>';

                    } else {
                        echo '<option value="'.$db->f("idcat").'">'.$db->f("name").'</option>';

                    }
                }
echo"            </select>
        </td>
    </tr>
";
echo"</table>
";

/**
 * fuser_mod_login
 *
 * OUTPUT
 *
 * Contenido-Version: 4.4.2
 * Modul-Version: 0.3b
 *
 * @autor Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 * @modified by Martin Hoffmann <martin.hoffmann@gmx.net>
 * @copyright 2004
 */

<?php

if ($_POST["fuser_mod_act"]=='logout')
{
        $sess->unregister("fuser_mod_uid");
        $sess->unregister("fuser_mod_username");
        $sess->unregister("fuser_mod_trustlevel");
        $fuser_mod_uid = '';
        $fuser_mod_username = '';
        $fuser_mod_trustlevel = '';
}

if ($_POST["fuser_mod_act"]=='login')
  {
        $sql = "SELECT * FROM ".$cfg["tab"]["fuser_mod"]." WHERE
             userid = '$fuser_mod_loginname' AND password = '".md5($fuser_mod_loginpwd)."'";
        $db->query($sql);
        if ($db->next_record())
          {
                $fuser_mod_uid = $db->f("userid");
                $fuser_mod_username = $db->f("username");
                $fuser_mod_trustlevel = $db->f("trustlevel");
                $sess->register("fuser_mod_uid");
                $sess->register("fuser_mod_username");
                $sess->register("fuser_mod_trustlevel");
          }
          else
          {
           $sess->unregister("fuser_mod_uid");
           $sess->unregister("fuser_mod_username");
           $sess->unregister("fuser_mod_trustlevel");
           $fuser_mod_uid = '';
           $fuser_mod_username = '';
           $fuser_mod_trustlevel = '';
          }
  }


echo"<table width=\"165\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"left\">
<tr><td style=\"background-color: #FEF4C6; padding-left:10px\" align=\"left\">
";
if ($fuser_mod_username == "")
{
echo"
<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."?idcatart=".$idcatart."\">
<table border=\"0\">
<tr><td align=\"left\">Benutzername</td></tr>
<tr><td align=\"center\"><input type=\"input\" name=\"fuser_mod_loginname\" value=\"\" size=\"20\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
<tr><td align=\"left\">Passwort</td></tr>
<tr><td align=\"center\"><input type=\"password\" name=\"fuser_mod_loginpwd\" value=\"\" size=\"20\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
</table>
<div align=\"center\"><input type=\"submit\" name=\"login\" value=\"Anmelden\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"><br>&nbsp;</div>
<input type=\"hidden\" name=\"fuser_mod_act\" value=\"login\">
</form>
";
} else {
echo"
Angemeldet als:<br><br><div align=\"center\">".$fuser_mod_uid."</div>
<br>
<form method=\"post\" action=\"front_content.php?idcatart=".$idcatart."\">
<div align=\"center\"><input type=\"submit\" name=\"logout\" value=\"Abmelden\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"><br>&nbsp;</div>
<input type=\"hidden\" name=\"fuser_mod_act\" value=\"logout\">
</form>";
}
echo"
</td></tr></table>";
?>
Meine Formatangaben hab ich noch nicht entfernt, sollte aber kein Problem sein, das anzupassen.

Martin
PickPay
Beiträge: 164
Registriert: Di 2. Dez 2003, 19:38
Wohnort: Zürich
Kontaktdaten:

Beitrag von PickPay »

Wieso erstellst du eine eigene Tabelle? All diese Daten ausser 'trustlevel' sind ja bereits in der Tabelle phplib_auth_user_md5 enthalten? Dann brauchst du noch entsprechende Verbindungen mit den Tabellen rights und actions und schon hast du dein Zugriffssystem. So entfällt die Entwicklung einer Eigenen Benutzerverwaltung, denn die geschieht über die Standartveraltung.
eTrax
Beiträge: 14
Registriert: Fr 2. Jan 2004, 19:25
Wohnort: Hilden
Kontaktdaten:

Beitrag von eTrax »

mh, habe nur in den anderen Diskussionen gelesen, dass die Userverwaltung noch etwas schwierig ist. Weiterhin benötige ich eigentlich nur FrontEnd-User mit unterschiedlichen "trustlevel". Anhand dieser "trustlevel" werden dann später nicht komplette Seiten versteckt, sondern nur "vertrauliche" Informationen ausgeblendet.

Na, ist ja auch nur ne Idee von mir, die ich in meinem Projekt verfolge, und die ich anderen gerne zur Verfügung stelle.

Hier dann das UserCenter, über welches sich dann die Benutzer anmelden können. Einstellbar ist ein Standard-"trustlevel", der den neuen User mitgegeben wird. Weiterhin kann noch eine Benachrichtigung per eMail Versand werden.

Code: Alles auswählen

Installation:

In der cfg_sql.inc.php folgende Zeile anfügen:
$cfg["tab"]["cfuser_mod"]			= $cfg['sql']['sqlprefix']."fuser_mod";

Danach eine weitere Tabelle anlegen:
CREATE TABLE `con_fuser_mod` (
  `id` tinyint(4) NOT NULL auto_increment,
  `userid` tinytext NOT NULL,
  `password` tinytext NOT NULL,
  `username` tinytext NOT NULL,
  `email` tinytext NOT NULL,
  `trustlevel` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Als nächstes einen neuen Baum definieren, dort wird das
User-Center als Modul in den Startartikel eingebunden.
Das neue Login-Modul statt dem alten Modul einbinden.

Im Layout/Modul ist nun über das Abfragen des trustlevel ein
Zugriffsschutz möglich:
z.B.: Container nur Anzeigen, wenn trustlevel>="1"
<?php if($fuser_mod_trustlevel>="1"){?>CMS_CONTAINER[x]<?php } ?>
z.B.: Container[x] nur Anzeigen, wenn trustlevel>="1", ansonsten Container[y]
<?php if($fuser_mod_trustlevel>="1"){?>CMS_CONTAINER[x]<?php }else{?>CMS_CONTAINER[y]<?php } ?>


/**
 * fuser_mod_center
 *
 * INPUT
 *
 * Contenido-Version: 4.4.2
 * Modul-Version: 0.1b
 *
 * @author Martin Hoffmann <martin.hoffmann@gmx.net>
 * @copyright 2004
 */


echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr><td>trustlevel: <select name=\"CMS_VAR[0]\" size=\"1\">";
if ("CMS_VALUE[0]" != 0 && "CMS_VALUE[0]" != "")
 {
  echo "<option value=\"0\">0</option>";
 }
 else
 {
  echo "<option value=\"0\" selected>0</option>";
 }
for ($i=1; $i<=5; $i++)
 {
  if ($i != "CMS_VALUE[0]")
  {
   echo "<option value=\"$i\">$i</option>";
  }
  else
  {
   echo "<option value=\"$i\" selected>$i</option>";
  }
 }
echo "</SELECT></td></tr>";
echo "<tr valign=\"top\"><td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[1]\" VALUE=\"1\" ";
if("CMS_VALUE[1]" == 1){echo "checked=checked"; };
echo "> eMail-Benachrichtigung</td></tr><tr><td>";
echo "an: <INPUT TYPE=\"text\" NAME=\"CMS_VAR[2]\" SIZE=\"30\"VALUE=\"";
if("CMS_VALUE[2]"){ echo "CMS_VALUE[2]";};
echo "\"></td></tr>";
echo "</table>";


/**
 * fuser_mod_center
 *
 * OUTPUT
 *
 * Contenido-Version: 4.4.2
 * Modul-Version: 0.1b
 *
 * @author Martin Hoffmann <martin.hoffmann@gmx.net>
 * @copyright 2004
 */

<?php
include($cfg['path']['contenido']."includes/cfg_language_de.inc.php");
if ($fuser_center_act == "") { $fuser_center_act = "add"; }

if ($fuser_center_act == "add")
 {
  echo "Bitte f&uuml;llen Sie alle Felder aus:";
  echo "<FORM name='gb' id='gb' action=".$auth->url()." method='post' enctype='application/x-www-form-urlencoded'>";
  echo "<INPUT TYPE=hidden NAME=fuser_center_act VALUE=check>";
  echo "<table border=0 cellpadding=0 cellspacing=0 width=100% >
        <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Vorname:</b></td><td align=\"left\"><INPUT TYPE=text NAME=fuser_anm_vname VALUE=\"$fuser_anm_vname\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
        <tr><td height=\"5\" colspan=\"2\"></td></tr>
        <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Name:</b></td><td align=\"left\"><INPUT TYPE=text NAME=fuser_anm_name VALUE=\"$fuser_anm_name\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
        <tr><td height=\"5\" colspan=\"2\"></td></tr>
        <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%>E-Mail:</td><td align=\"left\"><INPUT TYPE=text NAME=fuser_anm_email VALUE=\"$fuser_anm_email\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
        <tr><td height=\"5\" colspan=\"2\"></td></tr>
        <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%>Benutzername:</td><td align=\"left\"><INPUT TYPE=text NAME=fuser_anm_uid VALUE=\"$fuser_anm_uid\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
        <tr><td height=\"5\" colspan=\"2\"></td></tr>
        <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%>Password:</td><td align=\"left\"><INPUT TYPE=password NAME=fuser_anm_pwd1 VALUE=\"$fuser_anm_pwd1\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
        <tr><td height=\"5\" colspan=\"2\"></td></tr>
        <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%>Password:</td><td align=\"left\"><INPUT TYPE=password NAME=fuser_anm_pwd2 VALUE=\"$fuser_anm_pwd2\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
        <tr><td colspan=\"2\"><br><div align=\"center\"><INPUT TYPE=submit VALUE=\"weiter\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></div></td></tr>
        </table>
       ";
}

if($fuser_center_act == "check")
{
 if($fuser_anm_vname & $fuser_anm_name & $fuser_anm_email & $fuser_anm_uid & $fuser_anm_pwd1 & $fuser_anm_pwd2 && eregi( "^" ."[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@" . "([a-z0-9]+([\.-][a-z0-9]+)*)+" . "\\.[a-z]{2,}" ."$", $fuser_anm_email))
 {
  $allesok='1';
  $sql="SELECT * FROM ".$cfg["tab"]["fuser_mod"]." WHERE username = '$fuser_anm_vname $fuser_anm_name'";
  $db->query($sql);
  if($db->next_record())
   {
    $allesok='0';
    echo "Die folgenden Daten werden &uuml;berpr&uuml;ft:";
    echo "<FORM name='gb' id='gb' action=".$auth->url()." method='post' enctype='application/x-www-form-urlencoded'>";
    echo "<INPUT TYPE=hidden NAME=fuser_center_act VALUE=add>";
    echo "<table border=0 cellpadding=0 cellspacing=0 width=100% >
          <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Vorname:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_vname</DIV></td></tr>
          <tr><td height=\"5\" colspan=\"2\"></td></tr>
          <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Name:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_name</DIV></td></tr>
          <tr><td height=\"5\" colspan=\"2\"></td></tr>
          <tr><td colspan=\"2\">Die Benutzerdaten wurden &uuml;berpr&uuml;ft. Leider hast du bereits einen Account. Bitte logge dich mit deinem Benutzernamen "".$db->f("userid")."" ein!</td></tr>
          <tr><td colspan=\"2\"><br><div align=\"center\"><INPUT TYPE=submit VALUE=\"weiter\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></div></td></tr>
          </table>
         ";
   }
  if($allesok=='1')
   {
    $sql="SELECT * FROM ".$cfg["tab"]["fuser_mod"]." WHERE userid = '$fuser_anm_uid'";
    $db->query($sql);
    if($db->next_record())
     { #Benutzer vorhanden
      $allesok='0';
      echo "Die folgenden Daten werden &uuml;berpr&uuml;ft:";
      echo "<FORM name='gb' id='gb' action=".$auth->url()." method='post' enctype='application/x-www-form-urlencoded'>";
      echo "<INPUT TYPE=hidden NAME=fuser_center_act VALUE=add>
            <input type=\"hidden\" name=fuser_anm_vname value=\"$fuser_anm_vname\">
            <input type=\"hidden\" name=fuser_anm_name value=\"$fuser_anm_name\">
            <input type=\"hidden\" name=fuser_anm_email value=\"$fuser_anm_email\">
            <input type=\"hidden\" name=fuser_anm_uid value=\"\">
            <input type=\"hidden\" name=fuser_anm_pwd1 value=\"\">
            <input type=\"hidden\" name=fuser_anm_pwd2 value=\"\">
           ";
      echo "<table border=0 cellpadding=0 cellspacing=0 width=100% >
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Vorname:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_vname</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Name:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_name</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Benutzername:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_uid</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td colspan=\"2\">Die Benutzerdaten wurden &uuml;berpr&uuml;ft. Leider ist der Benutzername bereits vergeben. Bitte w&auml;hle einen anderen Benutzernamen!</td></tr>
            <tr><td colspan=\"2\"><br><div align=\"center\"><INPUT TYPE=submit VALUE=\"weiter\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></div></td></tr>
            </table>
           ";
     }
   }
  if($allesok=='1')
   {
    if($fuser_anm_pwd1==$fuser_anm_pwd2)
     {
      echo "Die folgenden Daten werden &uuml;berpr&uuml;ft:";
      echo "<FORM name='gb' id='gb' action=".$auth->url()." method='post' enctype='application/x-www-form-urlencoded'>";
      echo "<INPUT TYPE=hidden NAME=fuser_center_act VALUE=insert>
            <input type=\"hidden\" name=fuser_anm_vname value=\"$fuser_anm_vname\">
            <input type=\"hidden\" name=fuser_anm_name value=\"$fuser_anm_name\">
            <input type=\"hidden\" name=fuser_anm_email value=\"$fuser_anm_email\">
            <input type=\"hidden\" name=fuser_anm_uid value=\"$fuser_anm_uid\">
            <input type=\"hidden\" name=fuser_anm_pwd1 value=\"$fuser_anm_pwd1\">
            <input type=\"hidden\" name=fuser_anm_pwd2 value=\"$fuser_anm_pwd2\">
           ";
      echo "<table border=0 cellpadding=0 cellspacing=0 width=100% >
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Vorname:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_vname</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Name:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_name</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Benutzername:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_uid</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td colspan=\"2\">Die Benutzerdaten wurden &uuml;berpr&uuml;ft. Nun bist du nur noch einen Click weit entfernt, und wir begr&uuml;&szlig;en dich als neuen Benutzer auf dieser Seite.</td></tr>
            <tr><td colspan=\"2\"><br><div align=\"center\"><INPUT TYPE=submit VALUE=\"Anmelden\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></div></td></tr>
            </table>
           ";
     }
     else
     {
      echo "Die folgenden Daten werden &uuml;berpr&uuml;ft:";
      echo "<FORM name='gb' id='gb' action=".$auth->url()." method='post' enctype='application/x-www-form-urlencoded'>";
      echo "<INPUT TYPE=hidden NAME=fuser_center_act VALUE=add>
            <input type=\"hidden\" name=fuser_anm_vname value=\"$fuser_anm_vname\">
            <input type=\"hidden\" name=fuser_anm_name value=\"$fuser_anm_name\">
            <input type=\"hidden\" name=fuser_anm_email value=\"$fuser_anm_email\">
            <input type=\"hidden\" name=fuser_anm_uid value=\"$fuser_anm_uid\">
            <input type=\"hidden\" name=fuser_anm_pwd1 value=\"\">
            <input type=\"hidden\" name=fuser_anm_pwd2 value=\"\">
           ";
      echo "<table border=0 cellpadding=0 cellspacing=0 width=100% >
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Vorname:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_vname</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Name:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_name</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td align=\"left\" style=\"padding-left:20px;\" width=30%><B>Benutzername:</b></td><td align=\"left\"><DIV style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\">$fuser_anm_uid</DIV></td></tr>
            <tr><td height=\"5\" colspan=\"2\"></td></tr>
            <tr><td colspan=\"2\">Die Benutzerdaten wurden &uuml;berpr&uuml;ft. Leider stimmen die Passworte nicht &uuml;berein. Bitte korrigiere dies!</td></tr>
            <tr><td colspan=\"2\"><br><div align=\"center\"><INPUT TYPE=submit VALUE=\"weiter\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></div></td></tr>
            </table>
           ";
     }
   }
 }
 else
 {
  echo "Die Benutzerdaten wurden &uuml;berpr&uuml;ft. Du hast mindestens ein Feld nicht korrekt ausgef&uuml;llt.";
  echo "<FORM name='gb' id='gb' action=".$auth->url()." method='post' enctype='application/x-www-form-urlencoded'>";
  echo "<INPUT TYPE=hidden NAME=fuser_center_act VALUE=add>
        <input type=\"hidden\" name=fuser_anm_vname value=\"$fuser_anm_vname\">
        <input type=\"hidden\" name=fuser_anm_name value=\"$fuser_anm_name\">
        <input type=\"hidden\" name=fuser_anm_email value=\"\">
        <input type=\"hidden\" name=fuser_anm_uid value=\"$fuser_anm_uid\">
        <input type=\"hidden\" name=fuser_anm_pwd1 value=\"\">
        <input type=\"hidden\" name=fuser_anm_pwd2 value=\"\">
       ";
  echo "<table border=0 cellpadding=0 cellspacing=0 width=100% >
        <tr><td colspan=\"2\"><br><div align=\"center\"><INPUT TYPE=submit VALUE=\"weiter\" style=\"color:#000099; background-color:#FEF4C6; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></div></td></tr>
        </table>#
       ";
 }
}

// wenn ein eintrag geschrieben werden soll
if($fuser_center_act == "insert")
 {
  include($cfg['path']['contenido']."includes/cfg_language_de.inc.php");
  $sql = "INSERT INTO ".$cfg["tab"]["fuser_mod"]." (userid, password, username, email, trustlevel) VALUES ('$fuser_anm_uid', '$fuser_anm_pwd1', '$fuser_anm_vname $fuser_anm_name', '$fuser_anm_email', CMS_VALUE[0])";
  $db->query($sql);
  if("CMS_VALUE[1]" == 1 && "CMS_VALUE[2]" != "")
   {
    $message = "Benutzername: $fuser_anm_uid\nechter Name: $fuser_anm_vname $fuser_anm_name\nEmail: $fuser_anm_email";
    mail("CMS_VALUE[2]", "neuer Benutzer", $message, "From: Frontend Usersystem <CMS_VALUE[2]>\n");
   };
  echo "Die Benutzerdaten wurden eingetragen.";
 }

?>
ach, fehlt ja noch ne Funktion, mit der man ein neues Passwort anfordern kann, bzw. generell Passwörter und eMail-Adresse ändern kann...

Fortsetzung folgt
Zuletzt geändert von eTrax am Fr 16. Jan 2004, 22:39, insgesamt 1-mal geändert.
eTrax
Beiträge: 14
Registriert: Fr 2. Jan 2004, 19:25
Wohnort: Hilden
Kontaktdaten:

Beitrag von eTrax »

und hier noch die Ergänzung im Output des LogIn Moduls:

Code: Alles auswählen

<?php

/**
 * fuser_mod_login
 *
 * OUTPUT
 *
 * Contenido-Version: 4.4.2
 * Modul-Version: 0.4b
 *
 * @autor Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 * @modified by Martin Hoffmann <martin.hoffmann@gmx.net>
 * @copyright 2004
 */

if ($_POST["fuser_mod_act"]=='logout')
{
        $sess->unregister("fuser_mod_uid");
        $sess->unregister("fuser_mod_username");
        $sess->unregister("fuser_mod_trustlevel");
        $fuser_mod_uid = '';
        $fuser_mod_username = '';
        $fuser_mod_trustlevel = '';
}

if ($_POST["fuser_mod_act"]=='login')
  {
        $sql = "SELECT * FROM ".$cfg["tab"]["fuser_mod"]." WHERE
             userid = '$fuser_mod_loginname' AND password = '".md5($fuser_mod_loginpwd)."'";
        $db->query($sql);
        if ($db->next_record())
          {
                $fuser_mod_uid = $db->f("userid");
                $fuser_mod_username = $db->f("username");
                $fuser_mod_trustlevel = $db->f("trustlevel");
                $sess->register("fuser_mod_uid");
                $sess->register("fuser_mod_username");
                $sess->register("fuser_mod_trustlevel");
          }
          else
          {
           $sess->unregister("fuser_mod_uid");
           $sess->unregister("fuser_mod_username");
           $sess->unregister("fuser_mod_trustlevel");
           $fuser_mod_uid = '';
           $fuser_mod_username = '';
           $fuser_mod_trustlevel = '';
          }
  }


echo"<table width=\"165\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"left\">
<tr><td style=\"background-color: #FEF4C6; padding-left:10px\" align=\"left\">
";
if ($fuser_mod_username == "")
{
echo"
<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."?idcatart=".$idcatart."\">
<table border=\"0\">
<tr><td align=\"left\">Benutzername</td></tr>
<tr><td align=\"center\"><input type=\"input\" name=\"fuser_mod_loginname\" value=\"\" size=\"20\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
<tr><td align=\"left\">Passwort</td></tr>
<tr><td align=\"center\"><input type=\"password\" name=\"fuser_mod_loginpwd\" value=\"\" size=\"20\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></td></tr>
</table>
<div align=\"center\"><input type=\"submit\" name=\"login\" value=\"Einloggen\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"></div>
<input type=\"hidden\" name=\"fuser_mod_act\" value=\"login\">
</form>
<DIV align=\"center\"><a href=\"".$_SERVER['PHP_SELF']."?idcat=CMS_VALUE[0]&client=".$client."&lang=".$lang."\">Anmelden</a></div>
";
} else {
echo"
Angemeldet als:<br><br><div align=\"center\">".$fuser_mod_uid."</div>
<br>
<form method=\"post\" action=\"front_content.php?idcatart=".$idcatart."\">
<div align=\"center\"><input type=\"submit\" name=\"logout\" value=\"Ausloggen\" style=\"color:#000099; background-color:#fffbdb; border-color:#CD0B14; border-style:solid; border-width:1px; text-decoration:none; font-family:verdana, arial, helvetica, sans-serif; font-size:10px;\"><br>&nbsp;</div>
<input type=\"hidden\" name=\"fuser_mod_act\" value=\"logout\">
</form>";
}
echo"
</td></tr></table>";
?>
Hinzugekommen ist ein Link zur Anmeldung im UserCenter.
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

hast du einen Link, wo ich mir das ganze ansehen kann?
matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze »

hi there,

könntest du mir bitte eine genauere anweisung zur implementierung geben?
oder habe ich das prinzip falsch verstanden?

was hab ich bisher gemacht?
1. zwei hauptkategorien/bäume (START und INTERN) angelegt und eine davon (INTERN) "geschützt" gesetzt
2. der kategorie START ein template mit dem login-modul zugewiesen und in der konfiguration die einstellung "baum für usercenter" auf "INTERN" gesetzt
3. der kategorie INTERN ein template mit dem usercenter-modul zugewiesen

anfürsich sollte es doch jetzt so funktionieren, dass wenn ich mich einlogge, ich zur geschützten kategorie "INTERN" gelange, oder?

jedenfalls fünktioniert schonmal das login überhaupt nicht! (d.h. der abmelde-button erscheint nicht und die weiterleitung zur geschützten INTERN-seite auch nicht) :cry:

ciao,
matze
eTrax
Beiträge: 14
Registriert: Fr 2. Jan 2004, 19:25
Wohnort: Hilden
Kontaktdaten:

Beitrag von eTrax »

Hola,

bin gerade dabei, eine Demosite einzurichten, auf der dann alle weiteren Infos, neue Module etc. veröffentlicht werden.

http://fuser-mod.de.vu/

Zur Funktionsweise:
Das Modul benötigt eine eigene Tabelle in der Datenbank, in der dann über das User-Center angemeldete Benutzer eingetragen werden. (im ersten Post des Login-Moduls fehlte noch eine Zeile zur Ausgabe des "Anmelden"-Links) Somit funktioniert dieses Login-Modul nicht für im Backend-angelegte Benutzer.

Der Status "geschützt" (Backend-Bereich) funktioniert mit diesem Modul nicht (soll jedoch mit einem modifizierten Navigationsmodul geändert werden), jedoch lassen sich sowohl im Layout als auch in den Modulen einzelne Ausgaben schützen, im Layout nutzt du einfach:

Code: Alles auswählen

<?php if($fuser_mod_trustlevel>="z"){?>CMS_CONTAINER[x]<?php }else{?>CMS_CONTAINER[y]<?php } ?>
Ist ein Benutzer (Frontend) eingeloggt, dessen trustlevel >="z" ist, wird der CMS_Container[x] ausgegeben, ansonsten der CMS_Container[y]. Im Container[y] ist dann ein einfaches Modul platziert, das einen Hinweis ausgibt (Sie haben nicht die benötigte Berechtigung / Sie sind nicht eingeloggt), im Container[x] können dann andere Module stehen, die dann quasi "geschützt" sind.

Ähnlich funktioniert dies auch in den Modulen selbst:

Code: Alles auswählen

<?php if($fuser_mod_trustlevel>="z"){ [Anweisungsblock 1] }else{ [Anweisungsblock 2] } ?>
Hier wird bei trustlevel >= "z" der Anweisungsblock 1 ausgeführt, ansonsten der Anweisungsblock 2.
Ich nutze sowas z.B. um bei Steckbriefen vertrauliche Daten wie Straße, Hausnummer, Telefonnummer etc. für nicht vertrauenswürdige Benutzer auszublenden:

Code: Alles auswählen

<?php if($fuser_mod_trustlevel>="2"){ echo "$Benutzer_Adresse"; }else{ echo"Angaben gesch&uuml;tzt"; } ?>
Hoffe, soweit erstmal einigen Klarheiten beseitigt zu haben, momentan bin ich ein bissel im Stress, in 2 Wochen gehts dann weiter.

Martin
hyperjojo
Beiträge: 102
Registriert: Fr 1. Nov 2002, 23:57
Kontaktdaten:

Beitrag von hyperjojo »

Hi,

zunächst:
Ich finde es super, wenn möglichst viele Leute ihre Entwicklungen hier posten. So bekommen wir ein großes Script-Archiv zusammen... :)

Ich werde demnächst meine Scripte auch mal veröffentlichen (wenn diese soweit angepasst wurden)

Aber: Ist dein User-Script nicht ein bisschen kontra-produktiv zur Contenido-Entwicklung?? Ziel soll es doch sein, die Userverwaltung komplett auf die Contenido-User anzupassen und abzustimmen...

Von den Funktionen her interessiert mich dein Script wirklich. Aber auf Grund o.g. Tatsache werde ich es erstmal nicht testen und nutzen... : :shock:

ciao

hyperjojo
eTrax
Beiträge: 14
Registriert: Fr 2. Jan 2004, 19:25
Wohnort: Hilden
Kontaktdaten:

Beitrag von eTrax »

Mh, hatte mich mit der eigentlichen User-Verwaltung von Contenido noch nicht sonderlich viel befasst, da es mir eigentlich nur darum ging, Besuchern eine Anmeldemöglichkeit als Frontend-Benutzer zu geben, diesen dann verschiedene "Vertrauensstufen" zuzuordnen, um so einige Angaben ausblenden zu können. Bei dem ursprünglichen Projekt gab es es auch nur einen Benutzer, der Zugriff auf das Backend benötigte, insofern war das eine schnelle und einfache Lösung des Problems.

Allerdings dürfte es sicherlich auch kein Problem sein, die Eintragungen -statt in die eigene- in die entsprechenden Contenido-Benutzertabellen zu machen, werde mir das im Laufe der Woche mal ansehen, mein Glück versuchen und das dann weiter verfolgen.

Ach, gab es nicht irgendwo schonmal nen Hinweis, dass der neue Contenido Release eine veränderte Userverwaltung mit Gruppen, Front- und Backendusern hat? Lohnt sich da die Mühe überhaupt noch weiterzumachen, oder ist in nächster Zeit mit dieser umfangreichen Userverwaltung zu rechnen?
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

der plan ist, daß die frontend-benutzer komplett von den backendbenutzern abgekoppelt werden. schon alleine vom administrativen her sind mehrere tausend benutzer in der contenido-administration nicht mehr handlebar.
hyperjojo
Beiträge: 102
Registriert: Fr 1. Nov 2002, 23:57
Kontaktdaten:

Beitrag von hyperjojo »

hi timo.

wann soll das denn kommen?? dann ist die o.g. entwicklung ja vielleicht doch nicht so abwägig...


bye


hyperjojo
Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Beitrag von Snoopy »

Was mich jetzt wirklich wundert ist, das dieser Tread noch nicht überläuft mit Quotes.
Oder aber das wirklich gute Modul hat noch niemand getestet.

Folgende Fehler sollten im Code bereinigt werden:

1. In der cfg_sql.inc.php folgende Zeile anfügen:

Code: Alles auswählen

$cfg["tab"]["cfuser_mod"]         = $cfg['sql']['sqlprefix']."fuser_mod";


muss heißen:

In der cfg_sql.inc.php folgende Zeile anfügen:

Code: Alles auswählen

$cfg["tab"]["fuser_mod"]         = $cfg['sql']['sqlprefix']."_fuser_mod";


2. Im Login Modul wird das Passwort md5 verschlüsselt ausgelesen !

Code: Alles auswählen

$sql = "SELECT * FROM ".$cfg["tab"]["fuser_mod"]." WHERE 
             userid = '$fuser_mod_loginname' AND password = '".md5($fuser_mod_loginpwd)."'"; 


Im Usercenter werden die USER aber mit unverschlüsseltem Passwort abgelegt.

Code: Alles auswählen

  include($cfg['path']['contenido']."includes/cfg_language_de.inc.php"); 
  $sql = "INSERT INTO ".$cfg["tab"]["fuser_mod"]." (userid, password, username, email, trustlevel) VALUES ('$fuser_anm_uid', '$fuser_anm_pwd1', '$fuser_anm_vname $fuser_anm_name', '$fuser_anm_email', CMS_VALUE[0])"; 

Sollte man Ändern in:

Code: Alles auswählen

$fuser_anm_pwd3 = md5($fuser_anm_pwd1);  
include($cfg['path']['contenido']."includes/cfg_language_de.inc.php"); 
  $sql = "INSERT INTO ".$cfg["tab"]["fuser_mod"]." (userid, password, username, email, trustlevel) VALUES ('$fuser_anm_uid', '$fuser_anm_pwd3', '$fuser_anm_vname $fuser_anm_name', '$fuser_anm_email', CMS_VALUE[0])"; 
Dann klappt das auch mit dem Nachbarn. Trotzdem Ein super Modul, mach weiter so mein Bester ich
hoffe du entwickelst das Teil weiter. Beantragen eines höheren Trustlevels im Usercenter wäre
absult die Krönung.

Gruss aus Hamburg :wink:
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

hyperjojo hat geschrieben:hi timo.
wann soll das denn kommen?? dann ist die o.g. entwicklung ja vielleicht doch nicht so abwägig...
in der 4.5.0 bzw dann in der 4.6stable (siehe CVS-Snapshots).
loci
Beiträge: 1
Registriert: Mo 9. Feb 2004, 03:47
Kontaktdaten:

Beitrag von loci »

Hallo eTrax,

danke für das schöne tool hab es mit einigen Anpassungen bei mir laufen. Dein Skripte haben mir die Lösungen eines eigenen "Problems" unheimlich erleichtert - auch was das Verständnis für php (oder besser gesagt php3/phplib) angeht.

Cheers!
loci
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

Hallo eTrax,
lebt das Projekt noch, oder hast du aufgehört es weiterzuentwickeln?
Gesperrt