ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Joinus mit integriertem Nachnamen

Geschlossen
  1. #1
    User Pic
    Frosti Mitglied
    Registriert seit
    11.09.2006
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    Hi, habe folgendes Problem. Da ich mich nicht intensiv genug mit Php beschäftige, bekomme ich es nicht gebacken, mein Joinus Formular so umzuschreiben, das es beim Absenden automatisch einen "Nachnamen" anhängt. Also Man soll einen namen eingeben, z.B. Testuser, aber nach dem Absenden soll dieser User als Testuser xyz eingetragen werden. also das xyz soll dann einfach automatisch mit angehängt werden. Sowohl in der Datenbank als auch in der Mail die ihm geschickt wird. mein script sieht momentan so aus:

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    defined ('main') or die ( 'no direct access' );
    //-----------------------------------------------------------|
    
    $title = $allgAr['title'].' :: Joinus';
    $hmenu = 'Joinus';
    $design = new design ( $title , $hmenu );
    $design->header();
    
    if ( 0 == db_count_query("SELECT COUNT(*) FROM prefix_groups WHERE show_joinus = 1") ) {
    	echo $lang['noteamthere'];
    	$design->footer();
    	exit ();
    }
    
    $skill_ar = array (
      1 => $lang['verybad'],
      2 => $lang['bad'],
    	3 => $lang['middle'],
    	4 => $lang['good'],
    	5 => $lang['verygood'],
    );
    
    $far = array (
    		'name',
    		'skill',
    		'icqnumber',
    		'favmap',
    		'mail',
    		'age',
    		'hometown',
    		'squad',
    		'ground',
        'rules'
    	);
    $x = 0;
    foreach ($far as $v) {
    	if (!empty($_POST[$v])) {
    		$$v = escape($_POST[$v], 'string');
    		$x++;
    	} else {
    		$$v = '';
    	}
    }
    
    $xname = escape_nickname($name);
    $ch_name = false;
    if (loggedin()) {
      $ch_name = true;
    } elseif (isset($_POST['sub']) AND $name == $xname AND !empty($name)
       AND 0 == db_result(db_query("SELECT COUNT(*) FROM prefix_user WHERE name = BINARY '".$name."'"),0)) {
      $ch_name = true;
    }
    
    if (count($far) <> $x OR $ch_name == false OR !chk_antispam('joinus')) {
    	$tpl = new tpl ( 'joinus.htm' );
    	$skill  = arlistee ($skill, $skill_ar);
    	$squad  = '<option value="0">choose</option>';
      $squad .= dblistee ($squad, "SELECT id,name FROM prefix_groups WHERE show_joinus = 1 ORDER BY pos");
      if (loggedin()) { $name = $_SESSION['authname']; }
      foreach($far as $v) {
    		if ($x > 0 AND empty($_POST[$v])) {
    			echo 'missing: '.$lang[$v].'<br />';
    		}
    		$tpl->set ($v, $$v);
    	}
      if ($x > 0 AND $name != $xname) {
        echo $lang['wrongnickname'].'<br />';
      } elseif ($x > 0 AND $ch_name == false) {
        echo $lang['namealreadyinuse'].'<br />';
      }
      $name = $xname;
      $tpl->set('readonly', (loggedin()?' readonly': ''));
    	$tpl->set('ANTISPAM', get_antispam('joinus', 100));
    	$tpl->out(0);
    } else { # eintragen
      
      $name = $xname;
    	$userreg = $lang['no'];
      if (!loggedin() AND $allgAr['forum_regist'] <> 0) {
        $x = user_regist ($name,$mail,genkey(8));
        $userreg = $lang['yes'];
      }
    
      db_query("INSERT INTO prefix_usercheck (`check`,name,datime,ak) VALUES ('".genkey(8)."','".$name."',NOW(),4)");
    
      $squad = escape($squad, 'integer');
    	$abf   = "SELECT `mod1`, `mod2`, `mod4`, name FROM prefix_groups WHERE id = ".$squad;
    	$erg   = db_query($abf);
    	$row   = db_fetch_assoc($erg);
      $rulz  = (isset($_POST['rules'])?$_POST['rules']:$lang['no']);
      $skill = $skill_ar[$skill];
      
      # bitte in der richtigen reihenfolge angeben, sonst das nicht gehen tun, kann.
      $mailtxt = sprintf ($lang['joinusprivmsg'],
        $name,
        $row['name'],
        $skill,
        $mail,
        $hometown,
        $age,
        $icqnumber,
        $favmap,
        $ground,
        $rulz,
        $userreg
      );
      
      # pm an den leader  
    	sendpm ($_SESSION['authid'], $row['mod1'], 'Joinus Anfrage',$mailtxt, -1);
      # Wenn Co Leader != Leader
    	if ($row['mod2'] != $row['mod1']){
    		sendpm ($_SESSION['authid'], $row['mod2'], 'Joinus Anfrage',$mailtxt, -1);
    	}
    	if ($row['mod4'] != $row['mod1'] AND $row['mod2'] != $row['mod4']){
    		sendpm ($_SESSION['authid'], $row['mod4'], 'Joinus Anfrage',$mailtxt, -1);
    	}
      
    	if (!loggedin() AND $allgAr['forum_regist'] <> 0) {
    		echo $lang['amailhasbeensenttoyouwithmailandpass'].'<br /><br />';
      }
      echo sprintf($lang['leaderofxalert'], $row['name']);
    }
    $design->footer();
    ?>



    verwendete ilchClan Version: 1.1

    betroffene Homepage: externer Link
    Ich denke nicht an die Zukunft, denn Sie kommt früh genug
    (Albert Einstein)
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Hey, Frosti!

    Und was hat das für einen Sinn?
    Willst du einen Namen oder ein ClanTag dahinter haben?

    Mit böhsen Grüßen
    BöhserDavid
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Wenn du es einfach nur anhängen willst, ohne Eingabe, dann vor dieser Zeile $xname = escape_nickname($name); einfach $name .= ' xyz';

    Und so als Frage, was an deiner Datei ist denn geändert, dass du sie hier posten musst?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Frosti Mitglied
    Registriert seit
    11.09.2006
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    HI,

    @ boehserdavid: Ja, genau. ich will hinter alle Namen unseren Clannamen 'Pandora' hängen. Bisher halt immer per Hand gemacht.

    @Mairu: danke, werd das mal Probieren.
    Und da is nix dran geändert, nur damit man selbst nicht lange suchen muss. Nicht jeder hat alle Zeilen direkt im Kopf und kan dann sofort in meinem post gucken und vielleicht erkennen wos hin muss.

    THX Frosti
    Ich denke nicht an die Zukunft, denn Sie kommt früh genug
    (Albert Einstein)
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Frosti Mitglied
    Registriert seit
    11.09.2006
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    Jetzt aber nochmal ne dumme frage, weil ganz dumm in sachen Programmierung bin ich ja auch nicht.

    wen ich wie beschrieben $name = 'xyz' einsetze, dann müsste ja da stehen:

    $xname = escape_nickname(xyz)

    also wird einfach nur $name ersetzt.

    Es soll aber so sein, das der Name als Nachname angehängt wird.
    z.B.
    eintrag ins joinus-Form: Frosti
    automatischer eintrag in die Datenbank nach absenden des Forms:
    Frosti Pandora
    Also soll immer das 'Pandora' angehängt werden.

    außerdem was heißt vor dieser zeile????


    Zuletzt modifiziert von Frosti am 29.06.2007 - 09:49:00
    Ich denke nicht an die Zukunft, denn Sie kommt früh genug
    (Albert Einstein)
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das steht auch nicht da da steht
    $name .= ' xyz';
    Und der . bedeutet dass es angehängt wird.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Frosti Mitglied
    Registriert seit
    11.09.2006
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    Hmmm, wära auch eine Idee, funzt nur leider nicht.

    Also bei

    $xname = escape_nickname($name 'xyz')

    habe ich testweise : Testuser eingegeben.
    Er müsste dann ja Testuser xyz drauss machen. er macht aber @addr'' drauß.

    hab mir schon überlegt es erst nach bzw. Wärend dem Absenden zu machen, also in line 74 und 80 bei

    $name = $xname; also $name = $xname 'Pandora';

    das macht er aber auch nicht.

    Bin ich denn einfach zu blöd??
    [ich erwarte darauf keine Antwort ;-)]
    Ich denke nicht an die Zukunft, denn Sie kommt früh genug
    (Albert Einstein)
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Man kann nicht einfach
    $name = $xname 'Pandora';
    In php werden Zeichenketten mit . verbunden, und was geht bitte an meinem Vorschlag nicht, nebenbei bemerkt maximale Zeichenlänge für Namen ist 15.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Frosti Mitglied
    Registriert seit
    11.09.2006
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    Hoppalla. habe den Punkt nicht mit geschrieben. sorry. also doch doof. Danke nochmal, funzt.

    Grüße Frosti
    Ich denke nicht an die Zukunft, denn Sie kommt früh genug
    (Albert Einstein)
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten