Das wäre der angepasste Code für die Dateien, jedoch ungetestet. kaputt kann aber eigentlich nichts gehen
<?php
# Copyright by: Manuel
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
defined ('admin') or die ( 'only admin access' );
$design = new design ( 'Admins Area', 'Admins Area', 2 );
$design->header();
if ( empty ($_POST['SEND']) ) {
$auswahl = array (
'u0' => 'an alle User',
);
$erg = db_query("SELECT name,id FROM prefix_groups ORDER BY id");
while ($RRrow = db_fetch_object($erg)) {
$auswahl['g'.$RRrow->id]= $RRrow->name;
}
$listeB = '';
$listeT = '';
foreach ( $auswahl as $k => $v ) {
if (strpos($k,'u') !== false) {
$listeB .= '<option value="P'.$k.'">'.$v.' PrivMsg</option>'."n";
$listeB .= '<option value="E'.$k.'">'.$v.' eMail</option>'."n";
} elseif ( strpos($k,'g') !== false) {
$listeT .= '<option value="P'.$k.'">'.$v.' PrivMsg</option>'."n";
$listeT .= '<option value="E'.$k.'">'.$v.' eMail</option>'."n";
}
}
?>
<table cellpadding="0" cellspacing="0" border="0"><tr><td><img src="include/images/icons/admin/newsletter.png" /></td><td width="30"></td><td valign="bottom"><h1>Newsletter</h1></td></tr></table>
<form action="admin.php?newsletter" method="POST">
<table width="100%" border="0" cellspacing="1" cellpadding="2" class="border">
<tr>
<td colspan="2" height="25" class="Cdark">Hier kannst du einen Newsletter verschicken!</td>
</tr>
<tr>
<td class="Cmite"><b>Auswählen</b></td>
<td class="Cnorm">
<select name="auswahl">
<option value="Enews">eMail Newsletter</option>
<optgroup label="Benutzer">
<?php echo $listeB; ?>
</optgroup>
<optgroup label="Gruppen">
<?php echo $listeT; ?>
</option>
</select>
</td>
</tr>
<tr>
<td class="Cmite"><b>Betreff</b></td>
<td class="Cnorm">
<input type="text" name="bet" size="50">
</td>
</tr>
<tr>
<td class="Cmite" valign="top"><b>Text</b></td>
<td class="Cnorm">
<textarea cols="50" rows="10" name="txt"></textarea>
</td>
</tr>
<tr class="Cdark">
<td> </td>
<td>
<input type="submit" value="Absenden" name="SEND">
</td>
</tr>
</table>
</form>
<?php
} else {
$mailopm = substr($_POST['auswahl'],0,1);
$usrogrp = substr($_POST['auswahl'],1,1);
if ( $_POST['auswahl'] == 'Enews' )
{
$q = "SELECT email FROM prefix_newsletter";
}
elseif ( $usrogrp == 'u' )
{
$q = "SELECT email, name as uname, id as uid FROM prefix_user WHERE recht <= -1 AND opt_news = 1";
}
elseif ( true == strpos($_POST['auswahl'],'g') )
{
$gid = substr ( $_POST['auswahl'], 2 , strlen ( $_POST['auswahl'] ) -1 );
$q = "SELECT b.email, b.name as uname, b.id as uid FROM prefix_groupusers a LEFT JOIN prefix_user b ON a.uid = b.id WHERE a.gid = ".$gid;
}
$erg = db_query ( $q );
$zahler = 0;
if ( db_num_rows($erg) > 0 )
{
while ($row = db_fetch_object($erg) )
{
if ( $mailopm == 'E' )
{
icmail ( $row->email ,$_POST['bet'],$_POST['txt'] );
}
elseif ($mailopm == 'P' )
{
sendpm($_SESSION['authid'], $row->uid, escape($_POST['bet'], 'string'), escape($_POST['txt'], 'string'));
}
$zahler++;
}
if ( $mailopm == 'E' ) {
$eMailorPmsg = 'eMail(s)';
} elseif ($mailopm == 'P' ) {
$eMailorPmsg = 'Private Nachrichte(n)';
}
echo 'Es wurde(n) '.$zahler.' '.$eMailorPmsg.' verschickt';
}
else
{
echo 'Für diese Auswahl konnte nichts gefunden werden';
}
}
$design->footer();
?>
Hier die profil_edit.php:
<?php
# Copyright by: Manuel Staechele
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].' :: Users :: Profil';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="?user">Users</a><b> » </b> Profil'.$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
if ( $_SESSION['authright'] <= -1 ) {
if ( empty ($_POST['submit']) ) {
$design->header();
$abf = 'SELECT email,wohnort,homepage,aim,msn,icq,yahoo,avatar,status,staat,template,gebdatum,sig,opt_pm_popup,opt_pm,opt_mail,geschlecht,spezrank,opt_news FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';
$erg = db_query($abf);
if ( db_num_rows($erg) > 0 ) {
$row = db_fetch_assoc($erg);
$tpl = new tpl ('user/profil_edit');
$row['staat'] = '<option></option>'.arliste ( $row['staat'] , get_nationality_array() , $tpl , 'staat' );
$row['template'] = '<option></option>'.arliste ( $row['template'] , get_template_array() , $tpl , 'template' );
$row['geschlecht0'] = ( $row['geschlecht'] < 1 ? 'checked' : '' );
$row['geschlecht1'] = ( $row['geschlecht'] == 1 ? 'checked' : '' );
$row['geschlecht2'] = ( $row['geschlecht'] == 2 ? 'checked' : '' );
if ( $row['status'] == 1 ) { $row['status1'] = 'checked'; $row['status0'] = ''; } else { $row['status1'] = ''; $row['status0'] = 'checked'; }
if ( $row['opt_mail'] == 1 ) { $row['opt_mail1'] = 'checked'; $row['opt_mail0'] = ''; } else { $row['opt_mail1'] = ''; $row['opt_mail0'] = 'checked'; }
if ( $row['opt_news'] == 1 ) { $row['opt_news1'] = 'checked'; $row['opt_news0'] = ''; } else { $row['opt_news1'] = ''; $row['opt_news0'] = 'checked'; }
if ( $row['opt_pm'] == 1 ) { $row['opt_pm1'] = 'checked'; $row['opt_pm0'] = ''; } else { $row['opt_pm1'] = ''; $row['opt_pm0'] = 'checked'; }
if ( $row['opt_pm_popup'] == 1 ) { $row['opt_pm_popup1'] = 'checked'; $row['opt_pm_popup0'] = ''; } else { $row['opt_pm_popup1'] = ''; $row['opt_pm_popup0'] = 'checked'; }
$row['avatarbild'] = ( file_exists ( $row['avatar'] ) ? '<img src="'.$row['avatar'].'" alt=""><br />' : '' );
$row['Fabreite'] = $allgAr['Fabreite'];
$row['Fahohe'] = $allgAr['Fahohe'];
$row['Fasize'] = $allgAr['Fasize'];
$row['forum_max_sig'] = $allgAr['forum_max_sig'];
$row['uid'] = $_SESSION['authid'];
$row['forum_usergallery'] = $allgAr['forum_usergallery'];
$tpl->set_ar_out($row,0);
if ($allgAr['forum_avatar_upload']) $tpl->out(1);
$tpl->set_ar_out($row,2);
profilefields_change ( $_SESSION['authid'] );
$tpl->out(3);
} else {
$tpl = new tpl ( 'user/login.htm' );
$tpl->set_out('WDLINK','index.php',0);
}
} else { # submit
# change poassword
if ( !empty($_POST['np1']) AND !empty($_POST['np2']) AND !empty($_POST['op'])) {
if ($_POST['np1'] == $_POST['np2']) {
$akpw = db_result(db_query("SELECT pass FROM prefix_user WHERE id = ".$_SESSION['authid']),0);
if ($akpw == md5($_POST['op'])) {
$newpw = md5($_POST['np1']);
db_query("UPDATE prefix_user SET pass = '".$newpw."' WHERE id = ".$_SESSION['authid']);
setcookie(session_und_cookie_name(), $_SESSION['authid'].'='.$newpw, time() + 31104000, "/" );
$fmsg = $lang['passwortchanged'];
} else {
$fmsg = $lang['passwortwrong'];
}
} else {
$fmsg = $lang['passwortnotequal'];
}
}
# avatar speichern START
$avatar_sql_update = '';
if ( !empty ( $_FILES['avatarfile']['name'] ) AND $allgAr['forum_avatar_upload'] ) {
$file_tmpe = $_FILES['avatarfile']['tmp_name'];
$rile_type = ic_mime_type ($_FILES['avatarfile']['tmp_name']);
$file_type = $_FILES['avatarfile']['type'];
$file_size = $_FILES['avatarfile']['size'];
$fmsg = $lang['avatarisnopicture'];
$size = @getimagesize ($file_tmpe);
$endar = array (1 => 'gif', 2 => 'jpg', 3 => 'png');
if ( ($size[2] == 1 OR $size[2] == 2 OR $size[2] == 3) AND $size[0] > 10 AND $size[1] > 10 AND substr ( $file_type , 0 , 6 ) == 'image/' AND substr ( $rile_type , 0 , 6 ) == 'image/' ) {
$endung = $endar[$size[2]];
$breite = $size[0];
$hoehe = $size[1];
$fmsg = $lang['avatarcannotupload'];
if ( $file_size <= $allgAr['Fasize'] AND $breite <= $allgAr['Fabreite'] AND $hoehe <= $allgAr['Fahohe'] ) {
$neuer_name = 'include/images/avatars/'.$_SESSION['authid'].'.'.$endung;
@unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = ".$_SESSION['authid']),0));
move_uploaded_file ( $file_tmpe , $neuer_name );
@chmod($neuer_name, 0777);
$avatar_sql_update = "avatar = '".$neuer_name."',";
$fmsg = $lang['pictureuploaded'];
}
}
} elseif ( isset($_POST['avatarloeschen']) ) {
$fmsg = $lang['picturedelete'];
@unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = ".$_SESSION['authid']),0));
$avatar_sql_update = "avatar = '',";
}
# avatar speichern ENDE
# email aendern
if ($_POST['email'] != $_POST['aemail']) {
$id = $_SESSION['authid'].'||'.md5 (uniqid (rand()));
db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak)
VALUES ('".$id."','".escape($_POST['email'],'string')."',NOW(),3)");
$page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
$text = $lang['changedthemail'] . sprintf ($lang['registconfirmlink'], $page, $id );
icmail ($_POST['email'], $lang['mail'].' '.$lang['changed'], $text );
$fmsg = $lang['pleaseconfirmmail'];
}
#
#remove account
if (isset($_POST['removeaccount'])) {
$id = $_SESSION['authid'].'-remove-'.md5 (uniqid (rand()));
db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak)
VALUES ('".$id."','".escape($_POST['email'],'string')."',NOW(),5)");
$page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
$text = $lang['removeconfirm'] . sprintf ($lang['registconfirmlink'], $page, $id );
icmail ($_POST['email'], html_entity_decode($lang['removeaccount']), $text );
$fmsg = $lang['pleaseconfirmremove'];
}
#remove account
# statische felder speichern
db_query("UPDATE prefix_user
SET
homepage = '".get_homepage(escape($_POST['homepage'], 'string'))."',
wohnort = '".escape($_POST['wohnort'], 'string')."',
icq = '".escape($_POST['icq'], 'string')."',
msn = '".escape($_POST['msn'], 'string')."',
yahoo = '".escape($_POST['yahoo'], 'string')."',
".$avatar_sql_update."
aim = '".escape($_POST['aim'], 'string')."',
staat = '".escape($_POST['staat'], 'string')."',
template = '".escape($_POST['template'], 'string')."',
geschlecht = '".escape($_POST['geschlecht'], 'string')."',
status = '".escape($_POST['status'], 'string')."',
opt_mail = '".escape($_POST['opt_mail'], 'string')."',
opt_news = '".escape($_POST['opt_news'], 'string')."',
opt_pm = '".escape($_POST['opt_pm'], 'string')."',
opt_pm_popup = '".escape($_POST['opt_pm_popup'], 'string')."',
gebdatum = '".get_datum(escape($_POST['gebdatum'], 'string'))."',
sig = '".substr(escape($_POST['sig'], 'string'),0,$allgAr['forum_max_sig'])."'
WHERE id = ".$_SESSION['authid']
);
// Design save
$_SESSION['authgfx'] = $_POST['template'];
# change other profil fields
profilefields_change_save ( $_SESSION['authid'] );
$design->header();
# definie and print msg
$fmsg = ( isset($fmsg) ? $fmsg : $lang['changesuccessful'] );
wd('?user-8' , $fmsg , 3 );
}
} else {
$tpl = new tpl ( 'user/login' );
$tpl->set_out('WDLINK', '?user-8', 0);
}
$design->footer();
?>
und noch die profil_edit.htm
<form action="index.php?user-profil" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>Persönliche Daten ändern</legend>
<br />
<label style="float:left; width:35%;">{_lang_mail}</label><input style="margin-bottom:2px;" name="email" value="{email}" /><input type="hidden" name="aemail" value="{email}" /><font class="smalfont">{_lang_mustbeentered}</font><br />
<label style="float:left; width:35%;">{_lang_homepage}</label><input style="margin-bottom:2px;" name="homepage" value="{homepage}" /><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_hometown}</label><input style="margin-bottom:2px;" name="wohnort" value="{wohnort}" /><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_icq}</label><input style="margin-bottom:2px;" name="icq" value="{icq}" /><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_msn}</label><input style="margin-bottom:2px;" name="msn" value="{msn}" /><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_yahoo}</label><input style="margin-bottom:2px;" name="yahoo" value="{yahoo}" /><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_aim}</label><input style="margin-bottom:2px;" name="aim" value="{aim}" /><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_birthday}</label><input style="margin-bottom:2px;" name="gebdatum" value="{gebdatum}" /><font class="smalfont">{_lang_dateformat}</font><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_state}</label><select style="margin-bottom:2px;" name="staat">{_list_staat@<option%1 value="%2">%3</option>}</select><br style="clear:both;" />
<label style="float:left; width:35%;">Design</label><select style="margin-bottom:2px;" name="template">{_list_template@<option%1 value="%2">%3</option>}</select><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_sex}</label><input style="margin-bottom:2px;" type="radio" value="1" id="geschlecht1" name="geschlecht" {geschlecht1} /><label for="geschlecht1"> {_lang_male}</label>, <input id="geschlecht2" type="radio" value="2" name="geschlecht" {geschlecht2} /><label for="geschlecht2"> {_lang_female}</label>, <input id="geschlecht0" type="radio" value="0" name="geschlecht" {geschlecht0} /><label for="geschlecht0"> {_lang_itdoesntmatter}</label><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_status}</label><input id="status_aktiv" type="radio" value="1" name="status" {status1} /><label for="status_aktiv"> {_lang_active}</label>, <input id="status_inaktiv" type="radio" value="0" name="status" {status0} /><label for="status_inaktiv"> {_lang_inactive}</label><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_mails}<span class="smalfont"> {_lang_fromotherusers}?</span></label><input id="opt_mail1" type="radio" value="1" name="opt_mail" {opt_mail1} /><label for="opt_mail1"> {_lang_yes}</label>, <input id="opt_mail0" type="radio" value="0" name="opt_mail" {opt_mail0} /><label for="opt_mail0"> {_lang_no}</label><br style="clear:both;" />
<label style="float:left; width:35%;">Newsletter<span class="smalfont"> kostenlos empfangen?</span></label><input id="opt_news" type="radio" value="1" name="opt_news" {opt_news} /><label for="opt_news"> {_lang_yes}</label>, <input id="opt_news" type="radio" value="0" name="opt_news" {opt_news} /><label for="opt_news"> {_lang_no}</label><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_privatemessages}<span class="smalfont"> {_lang_fromotherusers}?</span></label><input id="opt_pm1" type="radio" value="1" name="opt_pm" {opt_pm1} /><label for="opt_pm1"> {_lang_yes}</label>, <input id="opt_pm0" type="radio" value="0" name="opt_pm" {opt_pm0} /><label for="opt_pm0"> {_lang_no}</label><br style="clear:both;" />
<label style="float:left; width:35%;">{_lang_privatemessages}<span class="smalfont"> {_lang_popupbynewmsg}?</span></label><input id="opt_pm_popup1" type="radio" value="1" name="opt_pm_popup" {opt_pm_popup1} /><label for="opt_pm_popup1"> {_lang_yes}</label>, <input id="opt_pm_popup0" type="radio" value="0" name="opt_pm_popup" {opt_pm_popup0} /><label for="opt_pm_popup0"> {_lang_no}</label><br style="fclear:both;" /><br />
{_if_{forum_usergallery}=='1'}<div align="center">
<a href="index.php?user-usergallery-{uid}">Usergallery</a> <a href="index.php?user-remove"/></a>
</div>{/_endif}<br />
{EXPLODE}
<fieldset>
<legend>{_lang_removeaccount}</legend>
<label style="float:left; width:35%;"> </label><input type="checkbox" value="yes" name="removeaccount" /> {_lang_delete}? <font class="smalfont">{_lang_mustbeentered}</font>
</fieldset>
<fieldset>
<legend>{_lang_avatar}</legend>
<label style="float:left; width:35%;"> </label>{avatarbild}<input type="checkbox" value="yes" name="avatarloeschen" /> {_lang_delete}?<br /><br />
<label style="float:left; width:35%;"> </label><input style="margin-bottom:2px;" type="file" name="avatarfile" /><br /><font class="smalfont"><br />{_lang_criterions}: {_lang_maxwidth} {Fabreite}px, {_lang_maxheight} {Fahohe}px {_lang_and} max size {Fasize} bytes. {_lang_otherwisenoaction}.</font><br />
</fieldset>
<br />
{EXPLODE}
<fieldset>
<legend>{_lang_signature}</legend>
<label style="float:left; width:35%;"><font class="smalfont">{_lang_max} {forum_max_sig} {_lang_signs}.</font></label><textarea style="margin-bottom:2px;" cols="60" rows="2" name="sig">{sig}</textarea><br />
</fieldset>
<br />
<fieldset>
<legend>{_lang_editpassword}</legend>
<br />
<label style="float:left; width:35%;">{_lang_current}</label><input style="margin-bottom:2px;" type="password" name="op" maxlength="20"><br />
<label style="float:left; width:35%;">{_lang_new}</label><input style="margin-bottom:2px;" type="password" name="np1" maxlength="20"><br />
<label style="float:left; width:35%;">{_lang_repeat}</label><input style="margin-bottom:2px;" type="password" name="np2" maxlength="20"><br />
</fieldset>
<br />
<fieldset>
<br />
{EXPLODE}
</fieldset>
<br />
<div align="center">
<input style="margin-bottom:2px;" type="submit" value="{_lang_send2}" name="submit">
</div>
</fieldset>
</form>
Für die Datenbank loggst Du Dich per phpmyadmin in die Datenbank ein oder ein beliebiges anderes Verwaltungsding
Dann drückst Du auf "SQL" und kopierst dort folgenden Code rein:
ALTER TABLE `ic1_user` ADD `opt_news` INT( 10 ) NOT NULL DEFAULT '1' AFTER `opt_mail`