This commit is contained in:
genuineparts 2025-06-03 23:02:49 +02:00
parent 85994871a0
commit 26732d5cd8
7 changed files with 180 additions and 85 deletions

View file

@ -85,6 +85,10 @@ include dirname(dirname(__FILE__)).'/inc/plugin.class.php';
*/
include dirname(dirname(__FILE__)).'/inc/mail.class.php';
/**
* Captcha
*/
include dirname(dirname(__FILE__)).'/inc/captcha.class.php';
$plugin=new plugins();
$db= new db($config['host'], $config['user'], $config['pass'], $config['db'],'utf8', true);
@ -201,6 +205,8 @@ if(defined('INSTALLED')){
header("Location: install/install.php");
}
$captcha = new captcha();
/**
* OpenID
*/

View file

@ -1,7 +1,7 @@
<?php
/**
* Project: beFramed
* File: /libs/cache.class.php
* File: /inc/cache.class.php
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public

114
inc/captcha.class.php Normal file
View file

@ -0,0 +1,114 @@
<?php
/**
* (c) 2025 BeCast
* -------------------------------------
* Filename: captcha.class.php
* Purpose: Capthca Handling
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
$module["module"]["name"]="Captcha Class";
$module["module"]["ver"]="1.0.0";
class captcha{
function getCaptcha(){
global $config;
if($config['captcha']==1) {
//return '<div id="mcaptcha__widget-container"><label mcaptcha_url="https://'.$config['mcaptcha_url'].'/widget/?sitekey='.$config['mcaptcha_sitekey'].'" for="mcaptcha__token" id="mcaptcha__token-label"><input type="text" name="mcaptcha__token" id="mcaptcha__token" /></label></div><script src="https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-rc2/dist/index.js"></script>';
return '<input type="text" name="shift" id="mcaptcha__token"><label data-mcaptcha_url="https://'.$config['mcaptcha_url'].'/widget/?sitekey='.$config['mcaptcha_sitekey'].'" for="mcaptcha__token" id="mcaptcha__token-label">mCaptcha authorization token.<a href="https://mcaptcha.org/docs/user-manual/how-to-mcaptcha-without-js/">Instructions</a>.</label><input type="text" name="mcaptcha__token"><div id="mcaptcha__widget-container"></div><script src="https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-rc2/dist/index.js"></script>';
} else if ($config['captcha']==2) {
return '<script src="https://www.google.com/recaptcha/api.js"></script><div class="g-recaptcha" data-sitekey="'.$config['recaptcha_sitekey'].'"></div>';
} else {
return '';
}
}
function validate($response){
global $config;
if($config['captcha']==1) {
var_dump($response);
if(isset($response['mcaptcha__token']) && $response['mcaptcha__token']!=''){
$token = $response['mcaptcha__token'];
} else {
return false;
}
$data = array(
'token' => $token,
'key' => $config['mcaptcha_sitekey'],
'secret' => $config['mcaptcha_secret']
);
$json = json_encode($data);
$url = 'https://'.$config['mcaptcha_url'].'/api/v1/pow/siteverify';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json)
));
$fh=curl_exec($ch);
// schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch);
var_dump($fh);
if(!$fh){
return false;
}else{
$response = json_decode($fh, true);
if($response["valid"] !== true){
return true;
}else{
return false;
}
}
}else if($config['captcha']==2) {
var_dump($response);
if(isset($response['g-recaptcha-response']) && $response['g-recaptcha-response']!=''){
$data = $response['g-recaptcha-response'];
} else {
return false;
}
$ch = curl_init();
// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify?secret=".$config['recaptcha_secret']."&response=".$data."&remoteip=".$functions->get_ip());
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// führe die Aktion aus und gebe die Daten an den Browser weiter
$fh=curl_exec($ch);
// schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch);
if(!$fh){
return false;
}else{
$response = json_decode($fh, true);
if($response["success"] !== true){
return true;
}else{
return false;
}
}
} else {
return true;
}
}
}
?>

View file

@ -1,7 +1,7 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL ^E_NOTICE);
error_reporting(E_ERROR);
// Login
$basepath='';
require_once 'core/init_core.inc.php';

View file

@ -16,14 +16,14 @@ if (isset($_COOKIE[$config["cookiename"] . "_rid"])){
if ($db->num_rows ($result) <= 0){
$db->query("INSERT INTO `" . $config['prefix'] . "banned_ips` (`ip`,`date`,`reason`) VALUES ('".$session->ip."','".time()."','Autoban - Matched Cookie')");
}
$core->message('Gebannt','Es scheint als wäre deine IP aktulle von der Accounterstellung ausgeschlossen.<br /> Wenn du denkst dies sei ein Fehler bitte sende uns eine <a href="mailto:'.$config['siteemail'].'">E-Mail</a>.',TRUE,$config['path'].'/index.php',5);
$core->message('Gebannt','Es scheint als wäre deine IP aktulle von der Accounterstellung ausgeschlossen.<br> Wenn du denkst dies sei ein Fehler bitte sende uns eine <a href="mailto:'.$config['siteemail'].'">E-Mail</a>.',TRUE,$config['path'].'/index.php',5);
}
$result = $db->query("SELECT `id` FROM `" . $config['prefix'] . "banned_ips` WHERE `ip` = '".$db->escape($session->ip)."'");
if ($db->num_rows ($result) > 0){
$row=$db->fetch_object($result);
$id=$row->id;
$session->setcookie($config['cookiename'] . '_rid', $id , time() + 60 * 60 * 24 * 365, $config['path'],$config['domain']);
$core->message('Gebannt','Es scheint als wäre deine IP aktulle von der Accounterstellung ausgeschlossen.<br /> Wenn du denkst dies sei ein Fehler bitte sende uns eine <a href="mailto:'.$config['siteemail'].'">E-Mail</a>.',TRUE,$config['path'].'/index.php',5);
$core->message('Gebannt','Es scheint als wäre deine IP aktulle von der Accounterstellung ausgeschlossen.<br> Wenn du denkst dies sei ein Fehler bitte sende uns eine <a href="mailto:'.$config['siteemail'].'">E-Mail</a>.',TRUE,$config['path'].'/index.php',5);
}
/*if($_GET['activate']!=""){
if($_GET['regstring']!=""){
@ -41,13 +41,11 @@ if(isset($_POST['submit']) && $_POST['openid']!='' && isset($_POST['openid'])){
$username=$session->sanitize_username($_POST['username']);
$vusername=$session->verify_username($username);
if($vusername!==TRUE){
$emsg.='<span style="color:red; font-weight:bold">'.$vusername.'</span><br />';
$emsg.='<span style="color:red; font-weight:bold">'.$vusername.'</span><br>';
}
if($config['captcha']==1){
include ('thirdparty/securimage/securimage.php');
$img = new Securimage();
if(!$img->check($_POST['captcha'])){
$emsg.='<span style="color:red; font-weight:bold">Das Captcha is ung&uuml;ltig!</span><br />';
if($config['captcha']!=0){
if(!$captcha->validate($_POST)){
$emsg.='<span style="color:red; font-weight:bold">Das Captcha is ung&uuml;ltig!</span><br>';
}
}
if(!preg_match('/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD',$_POST['email'])){
@ -55,11 +53,11 @@ if(isset($_POST['submit']) && $_POST['openid']!='' && isset($_POST['openid'])){
}
$result = $db->query("SELECT `uid` FROM `" . $config['prefix'] . "users` WHERE `username` LIKE '".$db->escape($username)."' LIMIT 1");
if ($db->num_rows ($result) > 0){
$emsg.='<span style="color:red; font-weight:bold">Dieser Nickname ist bereits vergeben!</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Dieser Nickname ist bereits vergeben!</span><br>';
}
$result = $db->query("SELECT `uid` FROM `" . $config['prefix'] . "users` WHERE `email` LIKE '".$db->escape($_POST['email'])."' LIMIT 1");
if ($db->num_rows ($result) > 0){
$emsg.='<span style="color:red; font-weight:bold">Diese E-Mail ist bereits registriert!</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Diese E-Mail ist bereits registriert!</span><br>';
}
if(!$emsg){
// Secure Posted Data
@ -84,7 +82,7 @@ if(isset($_POST['submit']) && $_POST['openid']!='' && isset($_POST['openid'])){
$core->redirect_message('Logged in','You have been successfully logged-in and will be redirected shortly.',TRUE,$config['path'].'/index.php',3);
}else{
$tpl->assign('emsg',$emsg);
$tpl->assign('captcha',$config['captcha']);
$tpl->assign('captcha',$captcha->getCaptcha());
$tpl->assign('openid',$config['use_openid']);
$tpl->assign('identity',$_POST['openid']);
$tpl->assign('data',$_POST);
@ -107,52 +105,32 @@ If(isset($_POST['submit'])){
$username=$session->sanitize_username($_POST['username']);
$vusername=$session->verify_username($username);
if($vusername!==TRUE){
$emsg.='<span style="color:red; font-weight:bold">'.$vusername.'</span><br />';
$emsg.='<span style="color:red; font-weight:bold">'.$vusername.'</span><br>';
}
if(!isset($_POST['agreed']) || $_POST['agreed']==''){
$emsg.='<span style="color:red; font-weight:bold">Du musst den Nutzungsbedingungen zustimmen!</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Du musst den Nutzungsbedingungen zustimmen!</span><br>';
}
if(!isset($_POST['birthday']) || $_POST['birthday']==''){
$emsg.='<span style="color:red; font-weight:bold">Du musst dein Geburtsdatum angeben!</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Du musst dein Geburtsdatum angeben!</span><br>';
}else{
$birthday = strtotime($_POST['birthday']);
// check
// 31536000 is the number of seconds in a 365 days year.
if(time() - $birthday < 16 * 31536000) {
$emsg.='<span style="color:red; font-weight:bold">Du musst leider midnestens 16 Jahre alt sein.</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Du musst leider mindestens 16 Jahre alt sein.</span><br>';
}
}
if(!isset($_POST['password']) || $_POST['password']==''){
$emsg.='<span style="color:red; font-weight:bold">Du musst ein Passwort vergeben!</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Du musst ein Passwort vergeben!</span><br>';
}elseif($_POST['password']!=$_POST['cpassword']){
$emsg.='<span style="color:red; font-weight:bold">Deine Passw&ouml;rter stimmen nicht &uuml;berein!</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Deine Passw&ouml;rter stimmen nicht &uuml;berein!</span><br>';
}elseif(strlen($_POST['password'])<6){
$emsg.='<span style="color:red; font-weight:bold">Dein Passwort ist zu kurz, es muss mindestens 6 Zeichen lang sein.</span><br />';
$emsg.='<span style="color:red; font-weight:bold">Dein Passwort ist zu kurz, es muss mindestens 6 Zeichen lang sein.</span><br>';
}
if($config['captcha']==1){
if(isset($_POST['g-recaptcha-response']) && $_POST['g-recaptcha-response']!=''){
$ch = curl_init();
// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify?secret=".$config['recaptcha_secret']."&response=".$_POST['g-recaptcha-response']."&remoteip=".$functions->get_ip());
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// führe die Aktion aus und gebe die Daten an den Browser weiter
$fh=curl_exec($ch);
// schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch);
if(!$fh){
$emsg.='<span style="color:red; font-weight:bold">Das Captcha is ung&uuml;ltig!</span><br />';
}else{
$response = json_decode($fh, true);
if($response["success"] !== true){
$emsg.='<span style="color:red; font-weight:bold">Das Captcha is ung&uuml;ltig!</span><br />';
}
}
if($config['captcha']!=0){
if(!$captcha->validate($_POST)){
$emsg.='<span style="color:red; font-weight:bold">Das Captcha is ung&uuml;ltig!</span><br>';
}
}
if(!preg_match('/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD',$_POST['email'])){
@ -209,11 +187,12 @@ If(isset($_POST['submit'])){
}
$meta='<link type="text/css" rel="stylesheet" href="'.$config['path'].'js/calendar/dhtmlgoodies_calendar.css?random=20060118" media="screen"></link>
<script src="'.$config['path'].'js/calendar/dhtmlgoodies_calendar.js?random=20060118" type="text/javascript">
</script><script src=\'https://www.google.com/recaptcha/api.js\'></script>';
</script>';
$dcap = $captcha->getCaptcha();
$tpl->assign('path','//'.$config['domain'].'/'.$config['path']);
$tpl->assign('emsg',$emsg);
$tpl->assign('regstring',$_GET['regstring']);
$tpl->assign('captcha',$config['captcha']);
$tpl->assign('captcha',$dcap);
$tpl->assign('sid',md5(uniqid(time())));
$tpl->assign('data',$_POST);
$content=$tpl->fetch('register.tpl');

View file

@ -40,16 +40,14 @@
<div class="row add-bottom">
<div class="twelve columns">
<input type="checkbox" value="1" name="agreed" id="agreed" /><strong> Ich stimme den <a href="/text/nutzungsbedingungen.html">Nutzungsbedingungen</a> zu und best&auml;tige mindestens 16 Jahre alt zu sein.</strong><img src="themes/default/images/icons/bullet_star.png" style="border:none;"/>
</fieldset>
{if $captcha==1}
<fieldset>
<legend>Captcha<img src="themes/default/images/icons/bullet_star.png" style="border:none;"/></legend>
<div class="g-recaptcha" data-sitekey="6Lf5_xoUAAAAAC4J3gMQYJhKqCUIS1uITL2D3kpC"></div>
</fieldset>
{if $captcha != ""}
<legend>Captcha<img src="themes/default/images/icons/bullet_star.png" style="border:none;"/></legend>
{$captcha}
{/if}
</fieldset>
<img src="themes/default/images/icons/bullet_star.png" style="border:none;"/> Pflichtfelder<br />
<input type="hidden" name="sid" value="{$sid}" />
<input type="submit" class="button" name="submit" value="Register" />
</form>
</div>
</div>
</div>

View file

@ -1,45 +1,43 @@
<h2>Registrieren</h2>
<span style="text-align:center;">
{$emsg}
<form class="registerform" action="{$path}register.php" method="post">
<fieldset>
<h2>Registrieren</h2>
<span style="text-align:center;">
{$emsg}
<form class="registerform" action="{$path}register.php" method="post">
<fieldset>
<legend>Grunddaten</legend>
<div style="float:left; width: 200px; margin-top: 10px;"><strong><img src="{$path}themes/default/images/icons/user.png" /> Username:<img src="{$path}themes/default/images/icons/bullet_star.png" /><br /></strong>
<input type="text" value="{$data.username}" name="username" size="20" maxlength="25" /></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<input type="text" value="{$data.username}" name="username" size="20" maxlength="25" /></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<strong><img src="{$path}themes/default/images/icons/email.png" /> E-Mail:<img src="{$path}themes/default/images/icons/bullet_star.png" /></strong><br />
<input type="text" value="{$data.email}" name="email" size="20" maxlength="40" /></div>
<div style="float:left; width: 200px; margin-top: 10px;"><strong><img src="{$path}themes/default/images/icons/key.png" /> Passwort:<img src="{$path}themes/default/images/icons/bullet_star.png" /></strong><br />
<input type="password" name="password" size="20" maxlength="20" /></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<strong><img src="{$path}themes/default/images/icons/key.png" /> Passwort wiederholen:<img src="{$path}themes/default/images/icons/bullet_star.png" /></strong><br /> <input type="password" name="cpassword" size="20" maxlength="25" /></div>
<div style="float:left; width: 200px; margin-top: 10px;"><strong><img src="{$path}themes/default/images/icons/key.png" /> Passwort:<img src="{$path}themes/default/images/icons/bullet_star.png" /></strong><br />
<input type="password" name="password" size="20" maxlength="20" /></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<strong><img src="{$path}themes/default/images/icons/key.png" /> Passwort wiederholen:<img src="{$path}themes/default/images/icons/bullet_star.png" /></strong><br />
<input type="password" name="cpassword" size="20" maxlength="25" /></div>
<div style="float:left; width: 200px; margin-top: 10px;"><strong><img src="{$path}themes/default/images/icons/user_orange.png" /> Realer Name:<br /></strong>
<input type="text" value="{$data.realname}" name="realname" size="20" maxlength="25" /></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<input type="text" value="{$data.realname}" name="realname" size="20" maxlength="25" /></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<strong><img src="{$path}themes/default/images/icons/map.png" /> Herkunft:</strong><br />
<input type="text" value="{$data.from}" name="from" size="20" maxlength="40" /></div>
<input type="text" value="{$data.from}" name="from" size="20" maxlength="40" /></div>
<div style="float:left; width: 200px; margin-top: 10px;"><strong><img src="{$path}themes/default/images/icons/female.png" />/<img src="{$path}themes/default/images/icons/male.png" /> Geschlecht:<br /></strong>
<select name="gender">
<option value="u">N/A</option>
<option value="f">weiblich</option>
<option value="m">m&auml;nnlich</option>
</select></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<select name="gender">
<option value="u">N/A</option>
<option value="f">weiblich</option>
<option value="m">m&auml;nnlich</option>
</select></div>
<div style="float:right; width: 200px; margin-top: 10px;">
<strong><img src="{$path}themes/default/images/icons/cake.png" /> Geburtstag:</strong><br />
<input type="text" value="{$data.birthday}" name="birthday" size="10" maxlength="10" /> <img src="{$path}themes/default/images/icons/date.png" onclick="displayCalendar(document.forms[0].birthday,'dd.mm.yyyy',this)"/></div>
</fieldset>
<fieldset>
{if $captcha==1}
<input type="text" value="{$data.birthday}" name="birthday" size="10" maxlength="10" /> <img src="{$path}themes/default/images/icons/date.png" onclick="displayCalendar(document.forms[0].birthday,'dd.mm.yyyy',this)"/></div>
</fieldset>
<fieldset>
{if $captcha != ""}
<legend>Captcha</legend>
<div style="float:left; width: 200px; margin-top: 10px;"><strong> Captcha:<br /></strong>
<img src="{$path}thirdparty/securimage/securimage_show.php?sid={$sid}" id="image" align="absmiddle" /><br /><a href="#" onclick="document.getElementById('image').src = '{$path}thirdparty/securimage/securimage_show.php?sid=' + Math.random(); return false"><img src="{$path}themes/default/images/icons/arrow_refresh.png" alt="Refresh" /></a>&nbsp;<a href="{$path}thirdparty/securimage/securimage_play.php" style="font-size: 13px"><img src="{$path}themes/default/images/icons/sound.png" alt="Sound" /></a><br /><br />
</div>
<div style="float:right; width: 200px; margin-top: 10px;">
<strong> Captcha eingeben:<img src="{$path}themes/default/images/icons/bullet_star.png" /></strong><br />
<input type="text" name="captcha" size="20" maxlength="40" /></div>
</fieldset>
{/if}
{$captcha}
</div>
</fieldset>
{/if}
<img src="{$path}themes/default/images/icons/bullet_star.png" /> ben&ouml;tigtes Feld<br />
<input type="submit" class="button" name="submit" value="Registrieren" />
</form>
</span>
</form>
</span>