ilch Forum » Ilch Clan 1.1 » Allgemein » Erweitertes Anmeldeformular

Geschlossen
  1. #1
    User Pic
    Hallodriho Mitglied
    Registriert seit
    15.08.2010
    Beiträge
    30
    Beitragswertungen
    1 Beitragspunkte
    Hidiho liebe Ilcher und Innen!

    Ich hab gerade versucht meinem Anmeldeformular zwei weitere Felder hinzuzufügen (Vorname, Nachname).

    Leider klappt dies nicht traurig
    Die Felder bleiben in der DB leer traurig

    Hier mal der Code:

    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="2"><b>{_lang_REGISTER}</b></th>
      </tr><tr>
    	<td colspan="2" class="Cdark">{FEHLER}</td>
    	</tr><tr>
              <td class="Cmite" width="60">{_lang_nickname}</td>
    					<td class="Cnorm"><input type="text" name="nutz" value="{name}" maxlength="15"></td>
            </tr><tr>
              <td class="Cmite">{_lang_mail}</td>
    					<td class="Cnorm"><input type="text" maxlength="100" value="{email}" name="email"></td>
            </tr>		<tr>
              <td class="Cmite" width="60">{_lang_Vorname}</td>
    					<td class="Cnorm"><input type="text" name="vorname" value="{vorname}" maxlength="15"></td>
            </tr>
    		<tr>
              <td class="Cmite" width="60">{_lang_Nachname}</td>
    					<td class="Cnorm"><input type="text" name="nachname" value="{nachname}" maxlength="15"></td>
            </tr>{EXPLODE}<tr>
    		
              <td class="Cmite">{_lang_password}</td>
    					<td class="Cnorm"><input type="password" name="pass"></td>
            </tr>{EXPLODE}<tr class="Cdark">
              <td></td>
    					<td><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>


    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&ouml;glich';
      $hmenu  = $extented_forum_menu.'<a class="smalfont" href="?user">User</a><b> &raquo; </b>Keine Registrierung m&ouml;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> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </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 = '';
        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');
        }
        
        $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 empty($vorname) OR empty($nachname) 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> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 2 von 3'.$extented_forum_menu_sufix;
          $design = new design ( $title , $hmenu, 1);
    	    $design->header();
    		  if (empty($name) OR empty($email) OR empty($vorname) OR empty($nachname)) {
    		    $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_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);
          
          $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> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </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;
    }
    ?>



    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> &raquo; </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,vorname,nachname,recht,regist,llogin,email,status,opt_mail,opt_pm)
    			  VALUES('".$row['name']."','".$row['pass']."','".$row['vorname']."','".$row['nachname']."',-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;
    
        # ak 5 remove account
        case 5:
            list ($id, $muell) = explode('-remove-', $row['check']);
            if ($id != $_SESSION['authid']) {
                break;
            }
            user_remove($id);
            wd('index.php','Dein Account wurde gel&ouml;scht. Du wirst nun auf die Startseite geleitet.',7);
            break;
    	}
    	db_query("DELETE FROM prefix_usercheck WHERE `check` = '".$row['check']."'");
    } else {
      echo $lang['confirmfailure'];
    }
    
    $design->footer();
    ?>



    ich habe mich versucht an das bereits vorhandene feld name zu halten, leider ist es doch komplexer als es scheint lachen

    findet vlt jemand meinen fehler? glücklich

    Danke schonmal!
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Saarlonz Hall Of Fame
    Registriert seit
    07.08.2008
    Beiträge
    3.003
    Beitragswertungen
    235 Beitragspunkte
    Hast du die Felder in der MySql Datenbank angelegt?
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Hallodriho Mitglied
    Registriert seit
    15.08.2010
    Beiträge
    30
    Beitragswertungen
    1 Beitragspunkte
    ja zwinker

    beide sind char(20)


    Zuletzt modifiziert von Hallodriho am 28.08.2010 - 21:08:29
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Saarlonz Hall Of Fame
    Registriert seit
    07.08.2008
    Beiträge
    3.003
    Beitragswertungen
    235 Beitragspunkte
    Hast du auch die includes/func/user.php angepasst.
    1 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Hallodriho Mitglied
    Registriert seit
    15.08.2010
    Beiträge
    30
    Beitragswertungen
    1 Beitragspunkte
    ok die datei hab ich übersehn glücklich danke dir!

    funktioniert jetz so wie ichs will glücklich

    so jetz hab ich ein neues problem^^
    ich möchte die ip mitspeichern.

    in der ic1_usercheck wird sie gespeichert, aber sobald man den bestätigungslink klickt, wandern zwar die daten in die ic1_user, aber das feld ip bleibt leer^^

    weiß wer rat?

    hier der codeabschnitt:

    	# 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,vorname,nachname,ip,email,pass,datime,ak)
    		VALUES ('".$id."','".$name."','$vorname','$nachname','".getip()."','".$mail."','".$md5_pass."',NOW(),1)");
      } else {
    	  db_query("INSERT INTO prefix_user (name,pass,vorname,nachname,ip,recht,regist,llogin,email,status,opt_mail,opt_pm)
    		VALUES('".$name."','".$md5_pass."','$vorname','$nachname','".getip()."',-1,'".time()."','".time()."','".$mail."',1,1,1)");
    		$userid = db_last_id();
    	}



    Zuletzt modifiziert von Hallodriho am 29.08.2010 - 11:10:30
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten