ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Mehere Teams beitretten

Geschlossen
  1. #1
    User Pic
    pvp-frostwolf Mitglied
    Registriert seit
    31.03.2008
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Huhu,

    hätte da mal eine Frage:
    wäre es möglich, wenn ein User das JoinUs-Formular ausfüllt, gleichzeitig 2 oder meheren Teams beizutretten? Ich denke mir mal, dass sich die Antwort irgendwo zwischen Zeile 55 und 102 in der joinus.php befindet, leider habe ich aber bis dato nicht verstanden, wie die Liste mit den Teams überhaupt erzeugt wird traurig

    Über jede Hilfe bin ich sehr dankbar lächeln


    verwendete ilchClan Version: 1.1
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja das wäre wäre nicht das einzige was geändert werden müsste, sowas kann man doch auch anders absprechen?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    pvp-frostwolf Mitglied
    Registriert seit
    31.03.2008
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Ja, das kann man auch anders absprechen lächeln Das Problem an der Geschichte ist, dass wir in den ersten 3 Tagen knapp 150 Member bekommen haben, welche wiederrum alle in unterschiedliche Teams wollen. Daher dachte ich, falls es irgendwie möglich ist, man könnte das Ganze auch scripttechnisch lösen...
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    150 Member? Soll ich dir jetzt meine Meinung dazu sagen?
    Da braucht man ja schon fast ne Halbtagsstelle zur Verwaltung eines solchen Clans zunge
    Das wird wohl nicht so bleiben, also dass 50 Member/Tag joinen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    pvp-frostwolf Mitglied
    Registriert seit
    31.03.2008
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Hehe, dass ist sogar fast wie nen Vollzeitjob ^^

    Jedoch liegst du mit deiner Vermutung nicht ganz richtig, ich bin nicht der Admin eines Clans, sondern einer PvP-Spielgemeintschaft welche auf dem wohl vollsten WoW Server angesiedelt ist. Da ich mich aber halbwegs gut mit Ilch auskenne, habe ich für unsere Seite dein Script benutzt. Ich schreib es halt grad ein wenig um, damit es unseren Bedürfnissen (wie gesagt, sind kein Clan und auch keine Gilde) entspricht.

    In den letzten Tagen wurde für die Seite eigentlich kaum Werbung gemacht bzw. gar keine. Wir haben halt ein paar Leader, die auf unserem Realm (Frostwolf) einen recht gutes Ansehen genießen und viele Leute folgen denen einfach nur ^^ Da wir aber nun verstärkt neue Member suchen wollen, sollte da so wenig arbeit wie Möglich auf uns zu kommen.

    Unser Realm beherbert knapp 30000 Spieler und wir sprechen eigentlich so gut wie jeden PvP´ler an. Wenn die Sache erstmal richtig am laufen ist, dann werden wir schnell an die 500 bis 1000 Member haben....

    Falls du mal einen Blick riskieren willst: www.pvp-frostwolf.de

    Ein eigentlich einzigartiges Projekt in der WoW-Welt; bis dato zwinker

    Btw. dürfte ich daher hier jetzt öfters vorbeischauen, da ich grad an einem WoW-CharakterInfo Modul arbeite (aber bisher hat mir die Doku schon sehr gut geholfen zwinker )
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ok dann bleibt jetzt noch die Frage wozu mehrere Teams, und müssen wirkliche alle ausgewählt werden oder sollen ein paar "Standard" sein, also wo man immer reinkommt, erzähl mal ein bisschen mehr zunge
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    pvp-frostwolf Mitglied
    Registriert seit
    31.03.2008
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Also momentan gehen wir folgenermassen vor (ka wie viel Ahnung du von WoW hast, ich erklärs mal für den Leien). Zuerst sei mal wichtig zu wissen, dass es in WoW vier unterschiedliche Schlachtfelder gibt (Player vs. Player Kampf, quasie die e-sports variante von wow). Für jedes Schlachtfeld haben wir (mittlerweile) einzelne Schlachtzugleiter. Diese sind nötig, da sie Taktiken und Positionen verteilen (ähnlich wie meinetwegen in CS). Nun ist es so, dass in drei dieser vier Schlachtfelder ein bestimmte Ausrüstung benötigt wird, damit man auch ordentlich und vor allem häufig gewinnt. Wenn du nun auf die Seite unter Teams schaust, wirste auch ganz schnell feststellen welches Schlachtfeld dies nicht benötigt. Im Klartext: Am Alteractal kann eigentlich jeder Teilnehmen, die anderen Schlachtfelder benötigen ein genauere Sortierung. Daher benötigen wir mehere Teams lächeln

    Im Endeffekt funktioniert das Ganze dann so:

    -> User XY meldet sich über das JoinUs-Formular an und wird dementsprechend in einem Team als Trial aufgenommen (soweit die Standardprozendur).

    -> Leiter XY trägt einen neuen "War" (bei uns heißt das halt Raid) ein, legt dabei ein Team (XY) fest (ansich also wie ein Squad in einem Clan).

    -> User XY (der in Team XY ist) meldet sich zum Raid an.

    Das soweit natürlich auch alles klar. Nun werden wir in Zukunft aber ständig andere Schlachtfelder in den Warplaner eintragen und viele Leute (die eben auch die Vorraussetzungen erfüllen) wollen eben in meheren Teams (bzw. auf meheren Schlachtfeldern) spielen. Bisher habe gehand habt, dass die Leute mir dann einfach eine PM schicken und ich sie ins Team eintrage (oder sie das JoinUs-Formular erneut ausfüllen, einfach mit einem neuen Team). Leider haben das aber ca. 80 % de r Leute nicht verstanden (wieso auch immer, es wird eigentlich ständig gesagt ^^) und mir gegenüber wurde mehrfach der Wunsch geäußert, dass man im JoinUs Formular gleich mehere Teams auswählen kann. Ansich dachte ich, dass das auch ganz easy wäre (ein wenig verstehe ich von PHP und HTML ist kein Problem), aber das Ganze greift scheinbar auf echt viele Sachen drauf zurück, aber das wirste wahrscheinlich besser wissen als ich...

    Um auch alle Fragen komplett zu beantworten:
    - Es müssen nicht alle ausgewählt werden, der User XY sollte halt entscheiden könne, welche Teams er joinen kann (ob jetzt ein Team, zwei Teams oder gleich alle vier).
    - Kein Team sollte Standard sein, aber zumindest ein Team sollte ausgewählt werden ^^

    Vielen Dank nochmal, dass du dir die Zeit nimmst mir zu helfen. Ich glaub, ich versuch jetzt an die 4 Stunden im Code rumzuhacken, aber mir fehlt immer noch die Übersicht traurig
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja wenn über ein Joinus Formular dann einfach mehrere Anfragen gesendet werden, ist es dann doch nur die Änderung des Joinus, sollte auch gar nicht so schwer, ich schau mal, was ich machen kann.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ok dann mal hier die Dateien, hab keine Lust jetzt die Änderungen rauszusuchen zwinker

    <form action="index.php?joinus" method="POST">
    <fieldset>
    	<legend><b>{_lang_yourdata}:</b></legend>
    	<label style="float:left; width:100px; ">{_lang_joininfo}</label>{_lang_plsfilloutallfields}<br />
      <label style="float:left; width:100px; ">{_lang_name}</label><input name="name"{readonly} maxlength="15" value="{name}" /><br />
    	<label style="float:left; width:100px; ">{_lang_skill}?</label><select name="skill">{skill}</select><br />
    	<label style="float:left; width:100px; ">{_lang_icqnumber}</label><input type="text" name="icqnumber" value="{icqnumber}" /><br />
    	<label style="float:left; width:100px; ">{_lang_favmap}</label><input type="text" name="favmap" value="{favmap}" /><br />
    	<label style="float:left; width:100px; ">{_lang_mail}</label><input type="text" name="mail" value="{mail}" /><br />
    	<label style="float:left; width:100px; ">{_lang_age}</label><input type="text" name="age" value="{age}" /><br />
    	<label style="float:left; width:100px; ">{_lang_hometown}</label><input type="text" name="hometown" value="{hometown}" /><br />
    	<label style="float:left; width:100px; ">{_lang_squad}</label><div style="float:left; width: 300px;">{squads}</div><br />
    	<label style="float:left; width:100px; ">{_lang_ground}</label><textarea name="ground" cols="40" rows="5">{ground}</textarea><br />
    	{EXPLODE}<label style="float:left; width:100px; ">{_lang_rules}</label><input type="checkbox" name="rules" value="{_lang_yes}" />{_lang_rulzreaded}<br />
      {EXPLODE}{RULES}{EXPLODE}<br />
    	{ANTISPAM}
    	<label style="float:left; width:100px; ">&nbsp;</label><input type="submit" name="sub" value="{_lang_formsub}" /><br />
    </fieldset>
    </form>


    <?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'
    	);
    $optional = array('icqnumber');
    $x = 0;
    foreach ($far as $v) {
    	if (!empty($_POST[$v])) {
    		$$v = escape($_POST[$v], 'string');
    		$x++;
    	} else {
    	    if (isset($_POST[$v]) AND in_array($v,$optional)) $x++;
    		$$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  = '';
      	$sql = db_query("SELECT id,name FROM prefix_groups WHERE show_joinus = 1 ORDER BY pos");
    	while ($r = db_fetch_object($sql)) {
    		$squad .= '<input type="checkbox" name="squad[]" value="'.$r->id.'" /> '.$r->name.'<br />';
    	}
    	$tpl->set('squads',$squad);
      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->out(0);
    	if ($allgAr['joinus_rules'] != 1) {
        $tpl->out(1);
      } else { 
        $rules = '<h2>'.$lang['rules'].'</h2>';
        $rerg = db_query('SELECT zahl,titel,text FROM `prefix_rules` ORDER BY zahl');
        while ($rrow = db_fetch_row($rerg)) {
                $rules .= '<table width="100%" border="0" cellpadding="5" cellspacing="1" class="border">';
                $rules .= '<tr class="Cmite"><td><b>&sect;'.$rrow[0].'. &nbsp; '.$rrow[1].'</b></td></tr>';
                $rules .= '<tr class="Cnorm"><td>'.bbcode($rrow[2]).'</td></tr>';
                $rules .= '</table><br />';
        }
        $rules .= '<input type="checkbox" name="rules" value="'.$lang['yes'].'" />'.str_replace(array('<a target="_blank" href="index.php?rules">','</a>'),'',$lang['rulzreaded']).'<br />';     
        $tpl->set_out('RULES',$rules,2);
      }
      $tpl->set('ANTISPAM', get_antispam('joinus', 100));
      $tpl->out(3);
    } else { # eintragen
      
      $name = $xname;
    	$userreg = $lang['no'];
      if (!loggedin() AND $allgAr['forum_regist'] <> 0) {
        $x = user_regist ($name,$mail,genkey(8));
        $userreg = $lang['yes'];
      }
    
    $squadnames = array();
    foreach ($_POST['squad'] as $squad) {
    	if (is_numeric($squad)) {
    		$squad = intval($squad);
    	} else {
    		continue;
    	}
    	db_query("INSERT INTO prefix_usercheck (`check`,name,datime,ak,groupid) VALUES ('".genkey(8)."','".$name."',NOW(),4,$squad)");
    	
    	$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);
    	}
    	$squadnames[] = $row['name'];
    }
      
    	if (!loggedin() AND $allgAr['forum_regist'] <> 0) {
    		echo $lang['amailhasbeensenttoyouwithmailandpass'].'<br /><br />';
      }
      echo sprintf($lang['leaderofxalert'], implode(', ',$squadnames));
    }
    $design->footer();
    ?>


    In der de.php könntest du noch leaderofxalert ändern, da dort Der Leader steht.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    pvp-frostwolf Mitglied
    Registriert seit
    31.03.2008
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Funktioniert wunderbar lächeln Vielen Dank
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    VeePay Mitglied
    Registriert seit
    06.10.2016
    Beiträge
    8
    Beitragswertungen
    0 Beitragspunkte
    Hallo Mairu,

    dieser Post ist zwar schon etwas älter aber ich hoffe du kannst mir hier helfen.
    Da ich das selbe Problme wie PVP-frostwolf habe, habe ich ebenfalls deine Lsung probiert.
    Leider meckert das System jetzt wegen der escape.php.

    Fehlermeldung:
    Warning: strip_tags() expects parameter 1 to be string, array given in /var/www/virtual/die-gamer-community.de/htdocs/include/includes/func/escape.php on line 24

    Hier scheint es ein Konflikt zwischen String und Array zu geben.
    Leider kenne ich mich da zu wenig aus.

    Ich hoffe du kannst mir hierbei helfen.

    Grüße
    VeePay
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ich hoffe, ich liege mit meiner Vermutung richtig.

    Statt Zeile 42 mal folgendes verwenden.
    if (is_array($_POST[$v])) {
        $$v = array_map(function($val) {return escape($val, 'string'); }, $_POST[$v]);
    } else {
        $$v = escape($_POST[$v], 'string');
    }
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    VeePay Mitglied
    Registriert seit
    06.10.2016
    Beiträge
    8
    Beitragswertungen
    0 Beitragspunkte
    Danke Mairu!

    Du bist spitze!

    Klappt alles wunderbar lachen

    Grüße
    VeePay


    Zuletzt modifiziert von VeePay am 12.12.2016 - 20:30:35
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten