ich möchte mein Joinus etwas verändern und stoße auf ein problem. Ich habe schon die ein oder anderen Topics durchgeschaut aber da ist nichts dabei was für mich wäre.
Das Joinus ist für Minecraft. Die es kennen wissen warscheinlich das man es auch Onlinespielen kann und da kommt das joinus ins Spiel.
Es soll ein Bewerbungsformular für die Serversein. Neue User können sich da für den Server bewerben und dann sollen das über eine Mail an eine email Adresse gehen.
if ( 0 == db_count_query("SELECT COUNT(*) FROM prefix_groups WHERE show_joinus = 0") ) { echo $lang['noteamthere']; $design->footer(); exit (); }
Das habe ich erst mal raus gemacht da es keine Teams gibt und das ja nichts damit zu tun hat.
Dann sieht meine veränderte php und htm 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(); $skill_ar = array ( 1 => $lang['verybad'], 2 => $lang['bad'], 3 => $lang['middle'], 4 => $lang['good'], 5 => $lang['verygood'], ); $far = array ( 'name', 'mcnick', 'mail', 'age', 'woher', '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->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>§'.$rrow[0].'. '.$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']); $skill = $skill_ar[$skill]; # bitte in der richtigen reihenfolge angeben, sonst das nicht gehen tun, kann. $mailtxt = sprintf ($lang['joinusprivmsg'], $name, $row['name'], $mcnick, $mail, $woher, $age, $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(); ?>
<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:150px; ">Homepage Nickname</label><input name="name"{readonly} maxlength="15" value="{name}" /><br /> <label style="float:left; width:150px; ">Meincraft Nickname</label><input type="text" name="mcnick" maxlength="15" value="{mcnick}" /><br /> <label style="float:left; width:150px; ">eMail</label><input type="text" name="mail" value="{mail}" /><br /> <label style="float:left; width:150px; ">Alter</label><input type="text" name="age" value="{age}" /><br /> <label style="float:left; width:150px; ">Woher kennst du uns</label><input type="text" name="woher" value="{woher}" /><br /> <label style="float:left; width:150px; ">Warum willst Du<br /> auf unserem Server spielen?</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; "> </label><input type="submit" name="sub" value="{_lang_formsub}" /><br /> </fieldset> </form>
Nach dem absende kommt jetzt eine Fehlermeldung die kommen musste^^
MySQL Error: 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 in Query: INSERT INTO ic1_usercheck (`check`,name,datime,ak,groupid) VALUES ('iv5Y8V84','Tiborius',NOW(),4,) Debug backtrace: @ mysql.php:32 -- debug_bt() @ mysql.php:50 -- db_check_error(...) @ joinus.php:95 -- db_query(...) @ index.php:35 -- require_once(...) Warning: sprintf() [function.sprintf]: Too few arguments in /users/mrl/www/mrl/include/contents/joinus.php on line 115 MySQL Error: 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1299250811','Joinus Anfrage','',-1)' at line 1 in Query: INSERT INTO `ic1_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) VALUES (1,,'1299250811','Joinus Anfrage','',-1) Debug backtrace: @ mysql.php:32 -- debug_bt() @ mysql.php:50 -- db_check_error(...) @ user.php:331 -- db_query(...) @ joinus.php:118 -- sendpm(...) @ index.php:35 -- require_once(...) Der Leader von wurde benachrichtigt.
Das erste was ich möchte ist das nicht der leader benachrichtigt wird sonder das an eine email versendet wird und dann halt noch das die Fehlermeldungen weg sind.
Wir werden es dann später machen das die Joinus Seite nur besucht werden kann wenn man registriert ist.
Gurß Tiborius
betroffene Homepage: mrl.square7.de/mrl/index.php?joinus