also ich hab jetzt ma was gemacht aber wenn man auf rediestriren klickt ist der user net regiestriert
include/template/user/regist.htm
<!-- REGELN -->
<form action="index.php?user-regist-2" method="POST">
{_lang_attentionplease}:
<br />
{regeln}
<br /><br /><input type="submit" value="{_lang_readandok}" name="Yes">
</form>
{EXPLODE}
<form action="index.php?user-regist-2" method="POST">
<input type="hidden" value="Gelesen und einverstanden" name="checked">
<table width="100%" border="0" cellspacing="1" cellpadding="3" class="border">
<tr class="Chead">
<th colspan="3"><b>{_lang_REGISTER}</b></th>
</tr><tr>
<td class="Cdark">Vorname</td>
<td colspan="2" class="Cdark"><span class="Cnorm">
<input name="vorname" type="text" id="vorname" value="{vorname}" maxlength="100" />
</span></td>
</tr>
<tr>
<td class="Cdark">Nachname</td>
<td colspan="2" class="Cdark"><span class="Cnorm">
<input name="nachname" type="text" id="nachname" value="{nachname}" maxlength="100" />
</span></td>
</tr>
<tr>
<td class="Cdark">Wohnort</td>
<td width="146" class="Cdark"><span class="Cnorm">
<input name="ort" type="text" id="ort" value="{ort}" maxlength="100" />
</span></td>
<td width="690" class="Cdark"><span class="Cnorm">
</span></td>
</tr>
<tr>
<td class="Cdark">Straße</td>
<td class="Cdark"><span class="Cnorm">
<input type="text" id="straße" value="{straße}" name="straße" />
</span></td>
<td class="Cdark"> </td>
</tr>
<tr>
<td colspan="3" class="Cdark"> </td>
</tr>
<tr>
<td colspan="3" class="Cdark">{FEHLER}</td>
</tr>
<tr>
<td class="Cmite" width="114">{_lang_nickname}</td>
<td colspan="2" class="Cnorm"><input type="text" name="nutz" value="{name}" maxlength="15"></td>
</tr><tr>
<td class="Cmite">{_lang_mail}</td>
<td colspan="2" class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email"></td>
</tr>{EXPLODE}<tr>
<td class="Cmite">{_lang_password}</td>
<td colspan="2" class="Cnorm"><input type="password" name="pass"></td>
</tr>{EXPLODE}<tr class="Cdark">
<td></td>
<td colspan="2"><input type="submit" value="{_lang_register}"></td>
</tr>
</table>
</form>
{EXPLODE}
{_lang_hello} {NAME}<br>
{_lang_yourregistrationwassuccessful}!<br><br>
{_lang_amailhasbeensenttoyouwithmailandpass}!<br><br>
{_lang_afteryoureceivedthemail} <a href="index.php?user-2">{_lang_login2}</a>
include/content/user/regist.php
<?php
# Copyright by: Manuel
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
if ( !isset($_GET['step']) ) { $_GET['step'] = 1; }
if ( $allgAr['forum_regist'] == 0 ) {
# user duerfen sich nicht registrieren.
$title = $allgAr['title'].' :: Users :: Keine registrierung möglich';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> » </b>Keine Registrierung möglich'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
$design->header();
$tpl = new tpl ( 'user/login' );
echo '<b> Der Administrator hat festgelegt das man sich nicht registrieren kann </b>';
$tpl->set_out('WDLINK','?'.$allgAr['smodul'],0);
$design->footer();
exit ();
}
switch ( $menu->get(2) ) {
default :
$title = $allgAr['title'].' :: Users :: Registrieren :: Step 1 von 3';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 1 von 3'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1 );
$design->header();
$tpl = new tpl ( 'user/regist' );
$tpl->set_out('regeln', bbcode($allgAr['allg_regeln']),0);
$design->footer();
break;
case 2 :
$name = '';
$email = '';
$vorname = '';
$nachname = '';
$ort = '';
$straße = '';
if (!empty($_POST['nutz'])) {
$name = escape($_POST['nutz'],'string');
}
if (!empty($_POST['email'])) {
$email = escape($_POST['email'],'string');
}
if (!empty($_POST['vorname'])) {
$vorname = escape($_POST['vorname'],'string');
}
if (!empty($_POST['nachname'])) {
$nachname = escape($_POST['nachname'],'string');
}
if (!empty($_POST['ort'])) {
$ort = escape($_POST['ort'],'string');
}
if (!empty($_POST['straße'])) {
$straße = escape($_POST['straße'],'string');
}
$ch_name = false;
$xname = escape_nickname($name);
if (!empty($name) AND $xname == $name AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$name."'"),0)) {
$ch_name = true;
}
if ( empty($name) OR empty($email) OR $name != $xname OR $ch_name == false ) {
$title = $allgAr['title'].' :: Users :: Registrieren :: Step 2 von 3';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 2 von 3'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
$design->header();
if (empty($name) OR empty($email)) {
$fehler = $lang['yourdata'];
} elseif ($name != $xname) {
$fehler = $lang['wrongnickname'];
} elseif ($ch_name == false) {
$fehler = $lang['namealreadyinuse'];
}
$tpl = new tpl ( 'user/regist' );
$tpl->set('name', $name);
$tpl->set('email', $email);
$tpl->set('vorname', $vorname);
$tpl->set('nachname', $nachname);
$tpl->set('ort', $ort);
$tpl->set('straße', $straße);
$tpl->set_out('FEHLER', $fehler, 1);
if ( $allgAr['forum_regist_user_pass'] == 1 ) {
$tpl->out(2);
}
$tpl->out(3);
} else {
$pass = genkey(8);
if (!empty($_POST['pass'])) {
$pass = escape($_POST['pass'], 'string');
}
user_regist ($name,$email,$pass,$vorname,$nachname,$ort,$straße);
$tpl = new tpl ('user/regist' );
$title = $allgAr['title'].' :: Users :: Registrieren :: Step 3 von 3';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> » </b><a class="smalfont" href="?user-regist">Registrieren</a><b> » </b>Step 3 von 3'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
$design->header();
$tpl->set_out ( 'NAME', $name, 4 );
}
$design->footer();
break;
}
?>
include/content/user/confirm.php
<?php
# Copyright by: Manuel
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].' :: User :: Confirm';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> » </b>Confirm'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
$design->header();
$abgelaufen = time() - 2592000; # 30 tage
$abgelaufen = date('Y-m-d H:i:s',$abgelaufen);
db_query("DELETE FROM prefix_usercheck WHERE datime < '".$abgelaufen."'");
$erg = db_query("SELECT * FROM prefix_usercheck WHERE `check` = '".escape($_GET['check'], 'string')."'");
if ( db_num_rows($erg) == 1 ) {
$row = db_fetch_assoc($erg);
switch ( $row['ak'] ) {
# confirm regist
case 1 :
if ( 0 == db_count_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$row['name']."'") ) {
db_query("INSERT INTO prefix_user (name,pass,recht,regist,llogin,email,status,opt_mail,opt_pm,wohnort)
VALUES('".$row['name']."','".$row['pass']."',-1,'".time()."','".time()."','".$row['email']."',1,1,1)");
echo $lang['confirmregist'];
} else {
echo $lang['confirmregistfailed'];
}
break;
# confirm new pass
case 2 :
db_query("UPDATE prefix_user SET pass = '".$row['pass']."' WHERE name = BINARY '".$row['name']."'");
echo $lang['confirmpassword'];
break;
# confirm new email
case 3 :
list ($id, $muell) = explode('||', $row['check']);
db_query("UPDATE prefix_user SET email = '".$row['email']."' WHERE id = ". escape($id, 'integer'));
echo $lang['confirmemail'];
break;
# ak 4 wurde besetzt fuer joinus anfragen...
case 4 : break;
}
db_query("DELETE FROM prefix_usercheck WHERE `check` = '".$row['check']."'");
} else {
echo $lang['confirmfailure'];
}
$design->footer();
?>
include/includes/func/user.php
<?php
# hier werden alle user spezifischen funktionen
# definert...
function user_identification () {
user_auth();
user_login_check();
user_update_database();
user_check_url_rewrite();
}
function user_auth () {
debug ('user - auth gestartet'. session_id());
$cn = session_und_cookie_name();
if (!user_key_in_db()
OR !isset($_SESSION['authid'])
OR (isset($_SESSION['authsess']) AND $_SESSION['authsess'] != $cn)) {
debug ('user - nicht in db oder nicht authid');
user_set_guest_vars();
user_set_user_online ();
# wenn cn cookie vorhanden
# dann checken ob er sich damit einloggen darf
if (isset($_COOKIE[$cn])) {
user_auto_login_check();
}
# gruppen, und modulzugehoerigkeit setzten
user_set_grps_and_modules();
}
}
function user_check_url_rewrite() {
global $allgAr;
if ( !loggedin() AND $allgAr['show_session_id'] == 0 ) {
# loescht die sessionid von allen urls
# auch urls wie formulare usw. damit
# suchmaschienen bots nicht iritiert sind ;)
# output_reset_rewrite_vars ist eine php funktion
# nicht unnoetig dannach suchen ;) ...
output_reset_rewrite_vars ();
}
}
function user_update_database () {
$dif = date('Y-m-d H:i:s', time() - 7200);
db_query("UPDATE prefix_online SET uptime = now() WHERE sid = '".session_id()."'");
db_query("DELETE FROM prefix_online WHERE uptime < '". $dif."'");
if ( loggedin() ) {
db_query("UPDATE prefix_user SET llogin = '".time()."' WHERE id = '".$_SESSION['authid']."'");
}
}
function user_set_user_online () {
global $allgAr;
if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
db_query("INSERT INTO prefix_online (sid,uptime,ipa) VALUES ('".session_id()."',now(),'".getip()."')");
}
$_SESSION['authgfx'] = $allgAr['gfx'];
}
function user_key_in_db() {
if ( 1 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
return ( true );
} else {
return ( false );
}
}
function session_und_cookie_name () {
return (md5(dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).DBPREF));
}
function user_login_check () {
if ( isset ($_POST['user_login_sub']) AND isset ($_POST['name']) AND isset ($_POST['pass']) ) {
debug ('posts vorhanden');
$erg = db_query("SELECT name,id,recht,pass,llogin FROM prefix_user WHERE name = BINARY '".$_POST['name']."'");
if ( db_num_rows($erg) == 1 ) {
debug ('user gefunden');
$row = db_fetch_assoc($erg);
if ( $row['pass'] == md5($_POST['pass']) ) {
debug ('passwort stimmt ... '.$row['name']);
$_SESSION['authname'] = $row['name'];
$_SESSION['authid'] = $row['id'];
$_SESSION['authright'] = $row['recht'];
$_SESSION['lastlogin'] = $row['llogin'];
$_SESSION['authsess'] = session_und_cookie_name();
db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
setcookie($_SESSION['authsess'], $row['id'].'='.$row['pass'] , time() + 31104000, "/" );
user_set_grps_and_modules();
return (true);
}
}
global $menu;
$menu->set_url (0, 'user');
$menu->set_url (1, 'login');
}
return ( false );
}
function user_auto_login_check () {
$cn = session_und_cookie_name();
$dat = explode('=',$_COOKIE[$cn]);
$id = $pw = 0;
if (isset($dat[0])) { $id = escape($dat[0], 'integer'); }
if (isset($dat[1])) { $pw = $dat[1]; }
debug (' pw ' . $pw );
debug (' id ' . $id );
$erg = db_query("SELECT name,id,recht,pass,llogin FROM prefix_user WHERE id = ".$id);
if (db_num_rows($erg) == 1) {
debug ('benutzer gefunden');
$row = db_fetch_assoc($erg);
if ($row['pass'] == $pw) {
debug ('passwoerter stimmen');
debug ($row['name']);
$_SESSION['authname'] = $row['name'];
$_SESSION['authid'] = $row['id'];
$_SESSION['authright'] = $row['recht'];
$_SESSION['lastlogin'] = $row['llogin'];
$_SESSION['authsess'] = $cn;
db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
setcookie($cn, $row['id'].'='.$row['pass'], time() + 31104000, "/" );
return (true);
}
}
user_logout ();
return (false);
}
function user_set_guest_vars() {
$_SESSION['authname'] = 'Gast';
$_SESSION['authid'] = 0;
$_SESSION['authright'] = 0;
$_SESSION['lastlogin'] = time();
$_SESSION['authsess'] = session_und_cookie_name();
}
function user_markallasread () {
$_SESSION['lastlogin'] = time();
}
function user_logout () {
#global $allgAr;
#$_SESSION = array();
#$_SESSION['authgfx'] = $allgAr['gfx'];
user_set_guest_vars();
db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
#if (isset($_COOKIE[session_name()])) {
# setcookie(session_name(), '', time()-99999999999931104000, '/');
#}
#setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
#session_destroy();
}
function user_set_grps_and_modules () {
$_SESSION['authgrp'] = array();
$_SESSION['authmod'] = array();
if ( loggedin() ) {
$erg = db_query("SELECT gid FROM prefix_groupusers WHERE uid = ".$_SESSION['authid']);
while ( $row = db_fetch_assoc ( $erg ) ) {
$_SESSION['authgrp'][$row['gid']] = TRUE;
}
$erg = db_query("SELECT DISTINCT url
FROM prefix_modulerights
left join prefix_modules on prefix_modules.id = prefix_modulerights.mid
WHERE uid = ".$_SESSION['authid']);
while ( $row = db_fetch_assoc ( $erg ) ) {
$_SESSION['authmod'][$row['url']] = TRUE;
}
}
}
function loggedin () {
if ( has_right(-1) ) { return ( true ); } else { return ( false ); }
}
function is_admin () {
if ( has_right(-9) ) { return ( true ); } else { return ( false ); }
}
function is_coadmin () {
if ( has_right(-8) ) { return ( true ); } else { return ( false ); }
}
function is_siteadmin ($m = NULL) {
if ( has_right(-7) ) { return ( true ); }
if ( !is_null($m) AND has_right(NULL, $m)) { return (true); }
return ( false );
}
# diese funktion liefert immer true wenn es ein admin ist.
# wenn kein kein admin wird geprueft ob der user
# entweder ein angegebenes recht oder in einer angegebene
# gruppe ist. oder ob er fals angegben das modulrecht hat.
# wenn eines von diesen 3 kriterien stimmt wird true ansonsten
# wenn keins uebereinstimmt false zurueck gegeben.
function has_right ($recht,$modul = '') {
if ( !is_array($recht) AND !is_null($recht) ) {
$recht = array ( $recht );
}
if ( $_SESSION['authright'] == -9 ) {
return ( true );
}
if ( !is_null($recht) ) {
foreach ( $recht as $v ) {
if ( ($v <= 0 AND $v >= $_SESSION['authright'] ) OR (isset($_SESSION['authgrp'][$v]) AND $_SESSION['authgrp'][$v] === true) ) {
return (true);
}
}
}
if ( !empty($modul) AND isset($_SESSION['authmod'][$modul]) AND $_SESSION['authmod'][$modul] === true ) {
return ( true );
}
return (false);
}
### admin
# wenn der 2. parameter weggelassen wird oder auf true gesetzt wird
# dann wird ein login formular angezeigt, wenn der user kein admin ist.
# wird der parameter auf false gesetzt wird das login formular nicht angezeigt.
# erste parameter ist das menu objekt...
function user_has_admin_right (&$menu,$sl=true) {
if ( $_SESSION['authright'] <= -8 ) { # co leader...
return ( true );
} else {
$uri_to_check1 = $menu->get(0);
$uri_to_check2 = $menu->get(1);
if ( count($_SESSION['authmod']) < 1 OR !loggedin() ) {
if ( $sl === true ) {
if ( !loggedin() ) {
$tpl = new tpl ( 'user/login.htm' );
$tpl->set_out('WDLINK','admin.php',0);
} else {
echo '<strong>Keine Berechtigung!</strong> <a href="index.php">Startseite</a>';
}
}
return ( false );
} elseif ( (isset($_SESSION['authmod'][$uri_to_check1]) AND $_SESSION['authmod'][$uri_to_check1] == true)
OR (isset($_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2]) AND $_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2] == true) ) {
return ( true );
} elseif ( count($_SESSION['authmod']) > 0 AND loggedin() ) {
if ( $sl === true ) {
foreach($_SESSION['authmod'] as $k => $v ) { $x = $k; break; }
$x = explode('-',$x);
$menu->set_url (0, $x[0]);
if ( isset($x[1]) ) {
$menu->set_url (1, $x[1]);
}
}
return ( true );
}
}
return ( false );
}
function user_regist ($name, $mail, $pass, $vorname, $nachname, $ort, $straße) {
global $allgAr, $lang;
$erg = db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name."'");
if (db_num_rows($erg) > 0) {
return (false);
}
if ( $allgAr['forum_regist_user_pass'] == 0 ) {
$new_pass = genkey(8);
} else {
$new_pass = $pass;
}
$md5_pass = md5($new_pass);
$confirmlinktext = '';
# confirm insert in confirm tb not confirm insert in user tb
if ( $allgAr['forum_regist_confirm_link'] == 1 ) {
# confirm link + text ... bit of shit put it in languages file
$page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
$id = md5 (uniqid (rand()));
$confirmlinktext = "\n".$lang['registconfirm']."\n\n".sprintf($lang['registconfirmlink'], $page, $id );
db_query("INSERT INTO prefix_usercheck (`check`,name,email,pass,vorname,nachname,ort,straße,datime,ak)
VALUES ('".$id."','".$name."','".$mail."','".$md5_pass."','".$vorname."','".$nachname."','".$ort."','".$straße."',NOW(),1)");
} else {
db_query("INSERT INTO prefix_user (name,pass,wohnort,recht,regist,llogin,email,status,opt_mail,opt_pm)
VALUES('".$name."','".$md5_pass."',-1,'".time()."','".time()."','".$mail."',1,1,1)");
$userid = db_last_id();
}
$regmail = sprintf($lang['registemail'],$name, $confirmlinktext, $name, $new_pass);
icmail($mail,'Anmeldung',$regmail); # email an user
return (true);
}
function sendpm ($sid,$eid,$ti,$te,$status = 0) {
db_query("INSERT INTO `prefix_pm` (sid,eid,time,titel,txt,status) VALUES (".$sid.",".$eid.",'".time()."','".$ti."','".$te."',".$status.")");
}
?>
wenn man auf regietrieren klickt wird ma net regitriert, wo ist der fehler???