ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Join us Problem

Geschlossen
  1. #1
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    Hallo,

    ich habe mein joinus verändert was auchz relativ einfach war. Nun bekomme ich allerdings diese Fehlermeldung angezeigt:

    Warning: Invalid argument supplied for foreach() in /var/www/web1208/html/airsoftev/include/includes/func/listen.php on line 43

    Ich schätze es hat vielleicht was damit zu tun das ich die Reinfolge nicht eingehalten habe aber ich habe ja einige dinge weggelassen also kann ich die Reinfolge ja gar nicht einhalten traurig

    Hier mal meine joinus.php:

    <?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 ();
    }
    
    $verkehr_ar = array (
      1 => $lang['auto'],
      2 => $lang['bahn'],
      3 => $lang['fahrrad'],
      4 => $lang['zufus'],
      5 => $lang['anderes'],
    );
    
    $far = array (
    		'name',
    		'mail',
    		'age',
    		'hometown',
    		'hobbies',
            'waffen',
            'erfahrung',
    		'finanziell',
    		'verkehr',
    		'zeitm',
    		'zeitm3',
    		'erwartung',
    		'zuverlaessig',
    		'beschreibung',
    		'warumairsoft',
    		'aboutyou',
    		'frage',
    		'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->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'];
      }
    
      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']);
      $verkehr = $verkehr_ar[$verkehr];
      
      # bitte in der richtigen reihenfolge angeben, sonst das nicht gehen tun, kann.
      $mailtxt = sprintf ($lang['joinusprivmsg'],
        $name,
        $row['name'],
        $mail,
    	$age,
    	$hometown,
    	$hobbies,
        $waffen,
        $erfahrung,
    	$finanziell,
    	$zeitm,
    	$zeitm3,
    	$erwartung,
    	$zuverlaessig,
    	$beschreibung,
    	$warumairsoft,
    	$aboutyou,
    	$frage,
        $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();
    ?>



    Aso ja die Auswahlbox funktioniert auch nicht. KA ob es auch an dem Fehler liegt.

    Währe für eine kleine hilfe sehr dankbar lächeln
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    Sry der fehler hat sich erledigt. Nun fehlt da aber nochn bischen was denn ich muss ja die dinge die ich gelöscht habe auch komplett löschen also die squad abfrage etc. oder? Weil ich kriege jetzt beim absenden einen mysql fehler traurig

    MySQL Error:
    1064 : Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ')' in Zeile 1
    in Query:
    INSERT INTO ic1_usercheck (`check`,name,datime,ak,groupid) VALUES ('zO96gJGq','Riou',NOW(),4,)
    
    Debug backtrace:
    	@ mysql.php:32 -- debug_bt()
    	@ mysql.php:50 -- db_check_error(...)
    	@ joinus.php:110 -- db_query(...)
    	@ index.php:35 -- require_once(...)
    
    MySQL Error:
    1064 : Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ''1305962615','Joinus Anfrage','Hallo, Riou möchte beitreten. Folgende Angaben ' in Zeile 1
    in Query:
    INSERT INTO `ic1_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) VALUES (1,,'1305962615','Joinus Anfrage','Hallo, Riou möchte beitreten. Folgende Angaben hat er gemacht: Skill: test eMail: test Wohnort: test Alter: test ICQ: test Fav.Map: test Grund: test Er hat die Regeln akzeptiert: test Wurde direkt als User registriert: test Wenn dort nein steht dann war er zum Zeitpunkt der Anfrage schon User. Im Adminmenu unter Teams kannst du ihn freischalten, oder die Anfrage löschen. Wenn er als User registriert wurde, muss er die Registrierung jenach Einstellung erst bestätigen.',-1)
    
    Debug backtrace:
    	@ mysql.php:32 -- debug_bt()
    	@ mysql.php:50 -- db_check_error(...)
    	@ user.php:331 -- db_query(...)
    	@ joinus.php:143 -- sendpm(...)
    	@ index.php:35 -- require_once(...)
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Du hast die Team-Auswahl beim Join Us entfernt oder wie?

    Fehler 1:
    Versuchs dann einfach mal mit einem $squad = 0; vor Zeile 110.

    Fehler 2:
    Die PM weiß nicht wohin, da du mit dem Entfernen der Squad-Abfrage auch das Auslesen des Squad-Leaders verhinderst. Dessen ID wird jedoch als Empfänger genommen, fehlt diese, funktionierts auch nicht.

    Entweder du baust die Squad-Abfrage wieder ein oder setzt einfach ne feste UserID als Empfänger ein.

    EDIT: Sehe gerade erst noch den Fehler aus dem Eröffnungspost. Der Code ist so durcheinander, macht echt kein Spaß sich den anzugucken (Ist ja jetzt nicht gegen dich, ist ja schließlich nicht dein Code). Deshalb gerade keine Lust mir das genauer anzuschauen.


    Zuletzt modifiziert von DaStIaC am 21.05.2011 - 10:13:04
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    also das hilft schonmal nicht oder ich mache was falsch :/
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Naja, der erste MySQL-Error kommt, weil $squad leer ist, sieht man ja ,), zwischen , und ) fehlt die TeamID.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    naja also ich habe bei squads eine null eingefügt und die userid 1 angegeben, der fehler kommt aber nach wievor :/
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    kann mir niemand weiterhelfen? traurig
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Treicio gelöschter User
    *hust*Ich sehe nicht das $squad definiert wird*hust*

    Es ist doch einfach!
    Wenn du ne Liste mit den Teams hast.. muss jede <option> als value die Id des Teams haben. Und die muss dan übernommen werden...

    wenn das jetzt nen Post Formular ist machst du einfach über Den Query $squad = $_POST['XXX'];

    Fertig!

    Ach und: Kenn mich mit dem Joinus zwar nicht aus aber oben in $far .. sind das die ganzen Namen der Felder ? Wenn ja fehlt da irgendwie die id des squads schätze ich. ( Kam nicht dazu mir den Code komplett durch zu schauen weild as einfach nur ein Buchstabensalat ist )


    Zuletzt modifiziert von Treicio am 23.05.2011 - 21:46:04
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    ich will die squad auswahl ja wehaben und die antworten soll der Leader mit der user id 2 erhalten. der ganze müll mit den squads soll weg.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Treicio gelöschter User
    Dann musst du alleswas mitSquads zu tun hat entfernen. Und dann den Query unten anpassen
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    dann entfernst du erstmal das ,$squad und vorher bei den values ,groupid

    und dann am besten unten den block mit dem pm senden entfernen

    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);
        }


    EDIT:

    Wenn dus nen bisschen besser änderbar haben willst machste folgendes:

    phpmyadmin -> sql (natürliche deinen prefix einsetzen)

    INSERT INTO `ic1_config` (`schl`, `typ`, `kat`, `frage`, `wert`, `pos`) VALUES ('joinus_pm_uid', 'input', 'Team Optionen', 'Welcher User soll die JoinUs-PM bekommen? (UserID)', 2, 0);


    und dann dort wo $row['mod1'] stand trägste dann $allgAr['joinus_pm_uid'] ein.

    sollte theoretisch funktionieren^^
    und halt darüber bei sendpm() statt $row['mod1'] eben deine 2 eintragen


    Zuletzt modifiziert von DaStIaC am 24.05.2011 - 15:50:08
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    gut werde es nacher mal probieren. danke schonmal für deine Mühe lächeln
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    das ganze funktioniert nun, aber es werden nicht alle daten übermittelt sondern da steht zB:

    ICQ: Antwort

    icq hab ich aber gelöscht. Wo befinden sich denn die Variablen die übermittelt werden? In der datenbank hab ich nichts gefunden traurig
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Steht doch da:

    $lang['joinusprivmsg']


    Geh also in die include/includes/lang/de.php und suche nach 'joinusprivmsg' ;-)

    Musst aber alle Angaben die du dort aus dem Text löschst auch aus dem $mailtext = sprintf(...); nehmen.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten