benutzerregistrierung

Gesperrt
Madinson
Beiträge: 52
Registriert: Di 7. Okt 2003, 13:57
Wohnort: Köln
Kontaktdaten:

benutzerregistrierung

Beitrag von Madinson » Fr 17. Mär 2006, 12:13

suche dringend Modul für Benutzerregistrierung für version 4.6.8:

- Passwort selber wählen
- angeben zu strasse wohnort etc

- daten sollten in excel (o ä) exportierbar sein und im newsletter-modul zur verfügung stehen.

Arbeitsleistung kann bezahlt werden!
Zuletzt geändert von Madinson am Mo 20. Mär 2006, 14:43, insgesamt 2-mal geändert.
webwebweb...

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Sa 18. Mär 2006, 10:48

Ansatz findest Du hier:
http://www.contenido.org/forum/viewtopi ... 0805#70805

Das mit dem Passwort ist bei diesem Ansatz ein Problem, da das Ganze so gestaltet ist, dass wenn der Nutzer seine E-Mail bestätigt hat, er das Webseiten-Passwort zugesandt bekommt.

Da das Passwort zu diesem Zeitpunkt ("confirm") nicht bekannt ist und in der DB nur ein Hash-Wert gespeichert wird, wird das Passwort zu diesem Zeitpunkt automatisch generiert und an den Nutzer gesendet.

Danach benötigt man nur ein "Change Password"-Modul, damit die Nutzer in einer geschützten Kategorie ihr Initial-Passwort wieder ändern können. Ein entsprechendes Modul findest Du unter Module.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Madinson
Beiträge: 52
Registriert: Di 7. Okt 2003, 13:57
Wohnort: Köln
Kontaktdaten:

Beitrag von Madinson » Mo 20. Mär 2006, 12:06

..Also könnte man ja einfach einen neuen Mandanten anlegen und dort das Newslettermodul entsprechend anpassen.
Mmh, zum Thema Change Password: Kannst du mir noch den Link angeben?

Ich probiere gerade eine andere Variante:
Das Modul von Condor:

http://www.contenido.org/forum/viewtopi ... l&start=15

habe ich hier eingebaut.....http://www.pixel40.de/content/cms/front ... p?idcat=52

Nun läuft aber nicht alles .... kann mir hier jemand weiterhelfen...???
Fehlermeldung:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1012792_Q1ACMLLJYL/www/content/cms/front_content.php(792) : eval()'d code on line 189
Datenbankfehler! Kunde konnte nicht aufgenommen werden!


Hier der

Code: Alles auswählen

<html> 
<head> 
<title>Registrierungsformular</title> 
</head> 
<body> 
<?php 



////////////////// Prüfung ob alle Felder gefüllt sind 

if($Send && !empty($_REQUEST['vn']) && !empty($_REQUEST['nn']) && !empty($_REQUEST['strasse']) && !empty($_REQUEST['plz']) && !empty($_REQUEST['ort']) && !empty($_REQUEST['schule']) &&  !empty($_REQUEST['mail'])) 
{ 

     ////////////////// Datenbankanbindung 

  $dbserver = "localhost"; 
  $dbuser = "user"; 
  $dbpasswd = "password"; 
  $dbname_auth ="mysql"; 
  $dbname = "namedatenbank"; 
  $tab = "con_phplib_auth_user_md5"; 

// Verbindung zum Datenbankserver herstellen 
   $link=mysql_pconnect($dbserver, $dbuser, $dbpasswd); 
   if ($link == FALSE) 
   { 
      echo "<p><b>Leider kann keine Verbindung zur Datenbank hergestellt werden.\n"; 
      echo "</BODY></HTML>\n"; // HTML Dokument abschliessen 
      exit (); // PHP-Script beenden 
   } 

// Datenbank auswaehlen 
   $dblink=mysql_select_db($dbname); 
   if ($dblink == FALSE) 
   { 
      echo "<p><b>Leider kann die Datenbank nicht geöffnet werden.\n"; 
      echo "</BODY></HTML>\n"; // HTML Dokument abschliessen 
         exit (); // PHP-Script beenden 
    } 

//////////////////////// 

// Überpruefen ob der User schon vorhanden ist 
   $query1 = "SELECT vorname FROM $tab WHERE vorname LIKE '$vn' and nachname LIKE '$nn'"; 
   $result = mysql_query($query1); 

// Fehlermeldung ausgeben, bzw. User einfuegen 
   $num=mysql_NumRows($result); 
  
    if ($num) { 
      echo "Benutzer schon vorhanden!"; 
   } 
   else 
   { 

     // Zeichen auseinander nehmen für Passwort 
     $ze1 = substr($vn,0,1); 
     $ze2 = substr($nn,0,1); 


     // Quersumme errechnen 
     function quersumme($zahl) { 

        settype($zahl, "string"); 

        $letzter = strlen($zahl)-1; 

        $summe = 0; 
        for($i=0; $i<=$letzter; $i++) { 
                $summe = $summe+$zahl[$i]; 
        } 
        return $summe; 
} 

$wert = $plz; 
$quer = quersumme($wert); 

$passwort = $ze1.$funk.$ze2.$quer; 

$pass_enc = md5($passwort); 
$uid = md5($nn); 

      // alles in die DB einfügen 


      $query2="INSERT INTO $tab 
      SET      user_id='$uid', 
                 username='".$_REQUEST['nn']."', 
                 vorname='".$_REQUEST['vn']."', 
              nachname='".$_REQUEST['nn']."', 
			  email='".$_REQUEST['mail']."', 
              password='$pass_enc', 
              address_street='".$_REQUEST['strasse']."', 
              address_zip='".$_REQUEST['plz']."', 
                 address_city='".$_REQUEST['ort']."', 
                 schule='".$_REQUEST['schule']."', 
                 funktion='$funk';"; 

      $result2 = mysql_query($query2); 

      if ($result2) 
      { 
         print"<p><blockquote><b>$nn</b> wurde mit dem Passwort <b>$passwort</b> erfolgreich aufgenommen.<blockquote></p>"; 
      } 
      else 
      { 
         print"Datenbankfehler! Kunde konnte nicht aufgenommen werden!"; 
      } 

   } 
   mysql_close(); 
  


  
  
////////////////////// 
} 
else 
{ 
?> 
Wenn Sie sich noch nicht registriert haben, bitten wir Sie, die 
nachfolgenden Felder auszuf&uuml;llen. Sie erhalten umgehend eine Best&auml;tigungsmail 
und damit Zugriff auf die vorliegenden Arbeitsmaterialien.
<table border="0" width="100%" id="table1">
<tr> 
<td width="19%"> <form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="post"> 
<input type="hidden" name="idcat" value="<?php echo $idcat; ?>">
<input type="hidden" name="idart" value="<?php echo $idart; ?>">
Vorname</td>
<td width="23%"> 
<input name="vn" type="text" value="<?php echo$_REQUEST['vn']; ?>">
</td>
<td width="57%"> 
<?php 
   if($Send && empty($_REQUEST['vn'])) 
   { 
      echo"<b><span style=\"color:red;\">Bitte geben Sie den Voramen ein !</span></b>"; 
   } 
?>
</td>
</tr>
<tr> 
<td width="19%"> Name</td>
<td width="23%"> 
<input name="nn" type="text" value="<?php echo$_REQUEST['nn']; ?>">
</td>
<td width="57%"> 
<?php 
   if($Send && empty($_REQUEST['nn'])) 
   { 
      echo"<b><span style=\"color:red;\">Bitte geben Sie den Nachnamen ein !</span></b>"; 
   } 
?>
</td>
</tr>
<tr> 
<td width="19%"> Email</td>
<td width="23%"> 
<input name="mail" type="text" value="<?php echo$_REQUEST['mail']; ?>">
</td>
<td width="57%"> 
<?php 
   if($Send && empty($_REQUEST['mail'])) 
   { 
      echo"<b><span style=\"color:red;\">Bitte geben Sie die Emailadresse ein !</span></b>"; 
   } 
?>
</td>
</tr>
<tr> 
<td valign="top" width="19%">Bitte w&auml;hlen Sie ein Passwort*</td>
<td width="23%" valign="top"> 
<input name="reg_pw" type="password"  id="reg_pw">
</td>
<td valign="top" rowspan="2"><font size="1">Das Passwort mu&szlig; aus mindestens 
4 Zeichen bestehen <br>
und darf keine Sonderzeichen enthalten.</font></td>
</tr>
<tr> 
<td valign="top" width="19%">Bitte Passwort* wiederholen</td>
<td width="23%" valign="top"> 
<input name="reg_pw2" type="password"  id="reg_pw2">
</td>
</tr>
<tr> 
<td valign="top" width="19%"><b>Schuladresse</b></td>
<td width="23%" valign="top"></td>
<td valign="top" width="57%"></td>
</tr></tr>
<tr> 
<td width="19%"> Schule</td>
<td width="23%"> 
<input name="schule" type="text" value="<?php echo$_REQUEST['schule']; ?>">
</td>
<td width="57%"> 
<?php 
   if($Send && empty($_REQUEST['schule'])) 
   { 
      echo"<b><span style=\"color:red;\">Bitte geben Sie den Schulnamen ein !</span></b>"; 
   } 
?>
</td>
</tr>
<tr> 
<td width="19%"> Strasse</td>
<td width="23%"> 
<input name="strasse" type="text" value="<?php echo$_REQUEST['strasse']; ?>">
</td>
<td width="57%"> 
<?php 
   if($Send && empty($_REQUEST['strasse'])) 
   { 
      echo"<b><span style=\"color:red;\">Bitte geben Sie die Strasse ein !</span></b>"; 
   } 
?>
</td>
</tr>
<tr> 
<td width="19%"> PLZ</td>
<td width="23%"> 
<input name="plz" type="text" value="<?php echo$_REQUEST['plz']; ?>">
</td>
<td width="57%"> 
<?php 
   if($Send && empty($_REQUEST['plz'])) 
   { 
      echo"<b><span style=\"color:red;\">Bitte geben Sie die Postleitzahl ein !</span></b>"; 
   } 
?>
</td>
</tr>
<tr> 
<td width="19%"> Ort</td>
<td width="23%"> 
<input name="ort" type="text" value="<?php echo$_REQUEST['ort']; ?>">
</td>
<td width="57%"> 
<?php 
   if($Send && empty($_REQUEST['ort'])) 
   { 
      echo"<b><span style=\"color:red;\">Bitte geben Sie den Ort ein !</span></b>"; 
   } 
?>
</td>
<tr> 
<td width="19%" valign="top">Bundesland</td>
<td width="23%" valign="top"> 
<select name="Bundesland">
 <option value="" selected>Bitte Bundesland w&auml;hlen</option>
 <option value="01">Baden-W&uuml;rttemberg</option>
 <option value="02">Bayern</option>
 <option value="03">Berlin</option>
 <option value="04">Brandenburg</option>
 <option value="05">Bremen</option>
 <option value="06">Hamburg</option>
 <option value="07">Hessen</option>
 <option value="08">Mecklenburg-Vorpommern</option>
 <option value="09">Niedersachsen</option>
 <option value="10">Nordrhein-Westfalen</option>
 <option value="11">Rheinland-Pfalz</option>
 <option value="12">Saarland</option>
 <option value="13">Sachsen</option>
 <option value="14">Sachsen-Anhalt</option>
 <option value="15">Schleswig-Holstein</option>
 <option value="16">Th&uuml;ringen</option>
 <option value="17">Keine Angabe</option>
</select>
</td>
<td width="57%">&nbsp;</td>
</tr>
<tr> 
<td width="19%" valign="top">Land</td>
<td width="23%" valign="top"> 
<select name="Land">
 <option value="" selected>Bitte Land w&auml;hlen</option>
 <option value="81">Deutschland</option>
 <option value="82">Holland</option>
 <option value="83">Schweiz</option>
 <option value="84">&Ouml;sterreich</option>
</select>
</td>
<td width="57%">&nbsp;</td>
</tr>
<tr> 
<td width="19%" valign="top">Schultyp</td>
<td width="23%" valign="top"> 
<select name="Schultyp">
 <option value="" selected>Bitte Schultyp w&auml;hlen</option>
 <option value="90">Grundschule</option>
 <option value="91">Hauptschule</option>
 <option value="92">Realschule</option>
 <option value="93">Gesamtschule</option>
 <option value="94">Gymnasiale Oberstufe</option>
 <option value="95">Berufsschule</option>
 <option value="96">Keine Angabe</option>
</select>
</td>
<td width="57%">&nbsp;</td>
</tr>
<tr> 
<td width="19%" valign="top">Jahrgangsstufe</td>
<td width="23%" valign="top"> 
<select name="Jahrgangsstufe">
 <option value="" selected>Bitte Jahrgangsstufe w&auml;hlen</option>
 <option value="70">0-4</option>
 <option value="71">5-6</option>
 <option value="72">7-10</option>
 <option value="73">11-13</option>
 <option value="74">Keine Angabe</option>
</select>
</td>
<td width="57%">&nbsp;</td>
</tr>
<tr> 
<td width="19%">&nbsp;</td>
<td colspan="2">&nbsp;</td>
</tr>
<tr> 
<td width="19%"> 
<input type="reset" name="Zur&uuml;cksetzen" value="Zur&uuml;cksetzen">
</td>
<td colspan="2"> 
<input name="Send" type="submit" value="Abschicken">
</td></form>
</tr>
</table> 

<?php 
} 
?> 
</body> 
</html>
webwebweb...

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 20. Mär 2006, 19:22

Mmh, zum Thema Change Password: Kannst du mir noch den Link angeben?
Ja, die Suche ist schwer zu bedienen. So viele Knöpfe und Optionen... :roll:

http://www.contenido.org/forum/viewtopi ... e+password

Das von Dir gepostete ist ein ganz tolles Modul.

- Es ermöglicht SQL-Injection und damit die komplette Vernichtung Deiner Installation
- Es ist - für V4.6.x - die falsche Tabelle (es muss in con_frontendusers)
- Beide Tabellen enthalten nicht die Felder, die in den SQL-Abfragen angegeben ist und müssten daher erweitert werden
- Es verwendet nicht die sowieso schon vorhandene Contenido-DB-Verbindung (und ein Debugging des hier verwendeten Verbindungsaufbaus - das ist Deine Fehlermeldung - ist irgendwie müßig)
- Es zählt die Einträge in der Sequenz-Tabelle nicht hoch

Ich lege Dir nahe, das Teil in die Tonne zu treten und es doch nochmal mit dem genannten Ansatz zu versuchen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Madinson
Beiträge: 52
Registriert: Di 7. Okt 2003, 13:57
Wohnort: Köln
Kontaktdaten:

Beitrag von Madinson » Di 21. Mär 2006, 09:16

...oops.

Danke Herr B. für die ausführliche Aufführung.

Anbei ein vorläufige Zusammenfassung (ich habe die Komponenten in Version 4.6.8 eingesetzt und es läuft.):


Passwort-Modul:
Das o.a. Passwort-Modul von Herrn B. integrieren.

Übersetzung deutsch:
http://www.pixel40.de/contenido/text_ch ... ssword.xml

Backend-Modul Frontenduser:
http://www.contenido.org/opensourcecms/ ... do_4_6.zip

Nun müsste man nur noch im Frontend sich erweitert anmelden können.
Ansatz:
http://www.contenido.org/forum/viewtopi ... 0805#70805

Gibt es hierzu noch einen Beitrag den ich im Forum übersehen habe?
Oder hat jemand schon ein Anmeldeformular auf Basis von Contenido erstellt??
webwebweb...

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 21. Mär 2006, 22:53

Nun müsste man nur noch im Frontend sich erweitert anmelden können.
Als Trick kannst Du das Newsletter-Anmeldemodul bzw. Handler-Modul verwenden (wenn Du keine separate Newsletter-Anmeldung brauchst), daher der Ansatz. Der Code-Ausschnitt zeigt die Stelle im Newsletter-Handler, an der man den Code zur Speicherung der zusätzlichen Felder ergänzen muss (ist im Block "subscribe").

Mit der neuen Version ist es sogar noch einfacher (Beispiel AIM und ein noch nicht beim Plugin-Beispiel vorgesehenes "Nachname"-Feld):

Code: Alles auswählen

if (!$frontendusers->userExists($email)) { 
              if ($frontenduser = $frontendusers->create($email)) {
                 $frontenduser->setProperty("aim", "address", $_REQUEST["aim"]);
                 if ($_REQUEST["lastname"] != "") { 
                    $lastname = $_REQUEST["lastname"]; 
                    $lastname = substr($lastname, 0, 200); 
                 } else { 
                    $lastname = "None"; 
                 } 
                 $frontenduser->setProperty("name", "lastname", $lastname); 
                 ...
Im Anmeldeformular (hier: vom Newsletter-Modul) müssen natürlich entsprechende Inputfelder mit der Bezeichnung aim bzw. lastname angelegt worden sein.

Das Plugin zu lastname ist do-it-yourself... :wink:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Gesperrt