diff --git a/mail_control.php b/mail_control.php index f7c674d..1fae267 100644 --- a/mail_control.php +++ b/mail_control.php @@ -16,35 +16,33 @@ /* Var-Setup */ define('db_server','localhost'); define('db_name','mail'); - define('db_user','{USER}'); - define('db_pwd','{PASSWORD}'); - $tbl_aliases = 'virtual_aliases'; - $tbl_domains = 'virtual_domains'; - $tbl_users = 'virtual_users'; + define('db_user','mail'); + define('db_pwd','GwH_s8gJW:FvKV8RywoENMOAUJbGQyF:'); $lang = 'de'; /* Functions */ function query($sql) { - global $cid; - if($sql) return mysql_query($sql,$cid); + global $cid, $mysql_result; + echo $sql; + if($sql) return $mysql_result = $cid->query($sql); //else die(mysql_error()); } function fetch($res) { - if($res) return mysql_fetch_array($res); + global $mysql_result; + if($res) return $res->fetch_all(MYSQLI_BOTH); else return false; } function connect() { global $cid,$db; - $cid = mysql_connect(db_server,db_user,db_pwd); - if($cid) $db = mysql_select_db(db_name,$cid); - else die(mysql_error()); + $cid = new mysqli(db_server, db_user, db_pwd, db_name); + if ($cid->connect_errno) die("Verbindung fehlgeschlagen: " . $mysqli->connect_error); } function disconnect() { global $cid; - if(!(mysql_close($cid))) die("Fehler beim Trennen der Verbindung!"); + if(!($cid->close())) die("Fehler beim Trennen der Verbindung!"); } function pw_encode($password, $rounds=10000) { @@ -52,157 +50,93 @@ function pw_encode($password, $rounds=10000) { return crypt ($password, '$5$rounds=' . $rounds . '$' . $salt); } -/* LocalLanguage */ -if ($lang) { -$LLA = array(); - if ($lang == 'de') { -$LLA['de']['hide password'] = 'verstecke Passwort'; -$LLA['de']['show password'] = 'zeige Passwort'; -$LLA['de']['All'] = 'Alle'; -$LLA['de']['Alias Management'] = 'Alias-Verwaltung'; -$LLA['de']['New Alias'] = 'Alias hinzufügen'; -$LLA['de']['Action'] = 'Aktion'; -$LLA['de']['Source'] = 'Quelle'; -$LLA['de']['Destination'] = 'Ziel'; -$LLA['de']['Enabled'] = 'Aktiviert'; -$LLA['de']['Domain Management'] = 'Domain-Verwaltung'; -$LLA['de']['User Management'] = 'User-Verwaltung'; -$LLA['de']['New Domain'] = 'Domain hinzufügen'; -$LLA['de']['Change this record'] = 'Diesen Eintrag ändern'; -$LLA['de']['Delete this record'] = 'Diesen Eintrag löschen'; -$LLA['de']['Reset'] = 'Zurücksetzen'; -$LLA['de']['New User'] = 'User hinzufügen'; -$LLA['de']['Username'] = 'Benutzername'; -$LLA['de']['Password'] = 'Passwort'; -$LLA['de']['ERROR adding Alias'] = 'Fehler beim Hinzufügen eines Aliases'; -$LLA['de']['ERROR adding Domain'] = 'Fehler beim Hinzufügen einer Domain'; -$LLA['de']['ERROR adding User'] = 'Fehler beim Hinzufügen eines Users'; -$LLA['de']['Back'] = 'Zurück'; -$LLA['de']['was added...'] = ' wurde hinzugefügt...'; -$LLA['de']['Delete this alias?'] = 'Diesen Alias wirklich löschen?'; -$LLA['de']['Delete this domain?'] = 'Diese Domain wirklich löschen?'; -$LLA['de']['Delete this user?'] = 'Diesen User wirklich löschen?'; -$LLA['de']['was deleted...'] = 'wurde gelöscht'; -$LLA['de']['was changed...'] = 'wurde geändert...'; -$LLA['de']['No'] = 'Nein'; -$LLA['de']['Yes'] = 'Ja'; -$LLA['de']['Edit Alias'] = 'Alias bearbeiten'; -$LLA['de']['Edit Domain'] = 'Domain bearbeiten'; -$LLA['de']['Edit User'] = 'User bearbeiten'; -$LLA['de']['Target'] = 'Ziel'; -$LLA['de']['Cancel'] = 'Abbrechen'; -$LLA['de']['Speichern'] = 'Save'; -$LLA['de']['Reset'] = 'Zurüksetzen'; - } -/* -also available: -- Aliases -- Domains -- User -- ID -- Domain -- Name -- Ok -leave one alias out in the language conf and the original one will be used. -*/ -} - -function echoAl($al) { - global $LLA, $lang; - if (!$LLA[$lang]) {echo 'aaaa'; return false;} - if (!$LLA[$lang]) {echo $al; return false;} - if (!$LLA[$lang][$al]) {echo $al; return false;} - echo $LLA[$lang][$al]; - return true; -} - -function retAl($al) { - global $LLA, $lang; - if (!$LLA[$lang]) return 'bbbb'; - if (!$LLA[$lang]) return $al; - if (!$LLA[$lang][$al]) return $al; - return $LLA[$lang][$al]; -} /* Initialize */ connect(); -$do = $_REQUEST['do']; -$id = $_REQUEST['id']; -$new = $_REQUEST['new']; -$del = $_REQUEST['del']; -$chg = $_REQUEST['chg']; -$ack = $_REQUEST['ack']; -$domain = $_REQUEST['domain']; -$source = $_REQUEST['src']; -$usr = $_REQUEST['usr']; -$pwd = $_REQUEST['pwd']; -$dest = $_REQUEST['dest']; -$enabled = $_REQUEST['enabled']; -$ndomain = $_REQUEST['new_domain']; -$orderby = $_REQUEST['orderby']; -$sel = $_GET['sel']; +$do = array_key_exists('do', $_REQUEST) ? $_REQUEST['do'] : false; +$id = array_key_exists('id', $_REQUEST) ? $_REQUEST['id'] : false; +$new = array_key_exists('new', $_REQUEST) ? $_REQUEST['new'] : false; +$del = array_key_exists('del', $_REQUEST) ? $_REQUEST['del'] : false; +$chg = array_key_exists('chg', $_REQUEST) ? $_REQUEST['chg'] : false; +$ack = array_key_exists('ack', $_REQUEST) ? $_REQUEST['ack'] : false; +$domain = array_key_exists('domain' , $_REQUEST) ? $_REQUEST['domain' ] : false; +$source = array_key_exists('source' , $_REQUEST) ? $_REQUEST['source' ] : false; +$usr = array_key_exists('usr' , $_REQUEST) ? $_REQUEST['usr' ] : false; +$pwd = array_key_exists('pwd' , $_REQUEST) ? $_REQUEST['pwd' ] : false; +$dest = array_key_exists('dest' , $_REQUEST) ? $_REQUEST['dest' ] : false; +$enabled = array_key_exists('enabled', $_REQUEST) ? $_REQUEST['enabled'] : false; +$ndomain = array_key_exists('ndomain', $_REQUEST) ? $_REQUEST['ndomain'] : false; +$orderby = array_key_exists('orderby', $_REQUEST) ? $_REQUEST['orderby'] : false; +$sel = array_key_exists('sel' , $_REQUEST) ? $_REQUEST['sel' ] : false; -$fetch_list = mysql_query("SELECT * FROM `" . $tbl_domains . "` ORDER BY `name` ASC"); +$fetch_list = $cid->query("SELECT * FROM `domains` ORDER BY `domain` ASC"); $orderbysql = $orderby ? ' ORDER BY '.$orderby.';' : ';'; -$selectsql = $sel ? ' AND ' . $tbl_domains . '.id = '.$sel : ''; +$selectsql = $sel ? ' AND domain_id = '.$sel : ''; ## Query Aliases ## -$sql[1] = "SELECT " . $tbl_aliases . ".id, " . $tbl_aliases . ".source, " . $tbl_domains . ".name, " . $tbl_aliases . ".destination, " . $tbl_aliases . ".enabled FROM " . $tbl_aliases . ", " . $tbl_domains . " WHERE " . $tbl_aliases . ".domain_id = " . $tbl_domains . ".id".$selectsql.$orderbysql; +$sql[1] = "SELECT alias_id, source_username, source_domain, destinations, enabled FROM view_aliases"; +if ($sel) $sql[1] .= " WHERE domain_id=" . ($sel+0); +$sql[1] .= $orderbysql; ## Query Domains ## -$sql[2] = "SELECT * FROM " . $tbl_domains . $orderbysql; +$sql[2] = "SELECT * FROM domains " . $orderbysql; ## Query Users ## -$sql[3] = "SELECT " . $tbl_users . ".id, " . $tbl_domains . ".name, " . $tbl_users . ".user FROM " . $tbl_users . ", " . $tbl_domains . " WHERE " . $tbl_users . ".domain_id = " . $tbl_domains . ".id".$selectsql.$orderbysql; +$sql[3] = "SELECT account_id, user, domain FROM view_accounts"; +if ($sel) $sql[3] .= " WHERE domain_id=" . ($sel+0); +$sql[3] .= $orderbysql; ## Insert Alias Query ## -if(($domain <> "") && ($dest <> "")) $sql[4] = "INSERT INTO " . $tbl_aliases . " (domain_id, source, destination, enabled) VALUES ('$domain','$source','$dest',1);"; +if(($domain <> "") && ($dest <> "")) $sql[4] = "INSERT INTO aliases (source_username, source_domain, destination, enabled) VALUES ('$source','$domain','$dest',1);"; ## Insert Domain Query ## if($ndomain <> "") { - $sql0 = "SELECT name FROM " . $tbl_domains . " WHERE name = '$ndomain';"; + $sql0 = "SELECT domain FROM domains WHERE domain = '$ndomain';"; $qr = query($sql0); - if(mysql_num_rows($qr) < 1) $sql[5] = "INSERT INTO " . $tbl_domains . " (name) VALUES ('$ndomain');"; + if($qr->num_rows() < 1) $sql[5] = "INSERT INTO domains (domain) VALUES ('$ndomain');"; } ## Insert User Query ## if(($domain <> "") && ($usr <> "") && ($pwd <> "")) { - $sql1 = "SELECT domain_id, user, password FROM " . $tbl_users . " WHERE domain_id = $domain AND user = '$usr' AND password = '".pw_encode($pwd)."';"; + $sql1 = "SELECT domain_id, user, password FROM accounts WHERE domain = $domain AND username = '$usr';"; $qr = query($sql1); - if(mysql_num_rows($qr) < 1) $sql[6] = "INSERT INTO " . $tbl_users . " (domain_id, user, password) VALUES ('$domain','$usr','".pw_encode($pwd)."'); -"; + if($qr->num_rows() < 1) $sql[6] = "INSERT INTO accounts (domain, username, password, enabled) VALUES ('$domain','$usr','".pw_encode($pwd)."',1);"; } ## Delete Query ## -if(($del <> "") && ($id <> "") && ($ack == retAl('Yes'))) { +if(($del <> "") && ($id <> "") && ($ack == 'Yes')) { switch ($del) { - case 1: $tbl = $tbl_aliases; break; - case 2: $tbl = $tbl_domains; break; - case 3: $tbl = $tbl_users; break; + case 1: $sql = "DELETE FROM aliases WHERE id = $id;"; break; + case 2: $sql = "DELETE FROM domains WHERE id = $id;"; break; + case 3: $sql = "DELETE FROM accounts WHERE id = $id;"; break; } - $sql = "DELETE FROM ".$tbl." WHERE id = $id;"; + $qry = query($sql); } ## Update Alias Query## -if(($chg == 1) && ($id <> "") && ($domain <> "") && ($dest <> "") && ($ack == retAl('Save'))) { - $sql = "UPDATE ".$tbl_aliases." SET domain_id = '".$domain."', source = '".$source."', destination = '".$dest."', enabled = '".$enabled."' WHERE id = ".$id.";"; +if(($chg == 1) && ($id <> "") && ($domain <> "") && ($dest <> "") && ($ack == 'Save')) { + $sql = "UPDATE aliases SET source_domain = '".$domain."', source_username = '".$source."', destination = '".$dest."', enabled = '".$enabled."' WHERE id = ".$id.";"; $qry = query($sql); } ## Update Domain Query ## -if(($chg == 2) && ($id <> "") && ($domain <> "") && ($ack == retAl('Save'))) { - $sql = "UPDATE ".$tbl_domains." SET name='".$domain."' WHERE id = ".$id.";"; +if(($chg == 2) && ($id <> "") && ($domain <> "") && ($ack == 'Save')) { + $sql = "UPDATE domains SET domain='".$domain."' WHERE id = ".$id.";"; $qry = query($sql); } ## Update User Query ## -if(($chg == 3) && ($id <> "") && ($domain <> "") && ($usr <> "") && ($pwd <> "") && ($ack == retAl('Save'))) { - $sql = "UPDATE ".$tbl_users." SET domain_id ='".$domain."', user ='".$usr."', password = '".pw_encode($pwd)."' WHERE id = ".$id.";"; +if(($chg == 3) && ($id <> "") && ($domain <> "") && ($usr <> "") && ($pwd <> "") && ($ack == 'Save')) { + $sql = "UPDATE accounts SET domain ='".$domain."', username ='".$usr."', password = '".pw_encode($pwd)."' WHERE id = ".$id.";"; $qry = query($sql); } -if($do) $qry = query($sql[$do]); -if($qry) $result = true; -else $result = false; +if($do) { $qry = query($sql[$do]); + if($qry) $result = true; + else $result = false; +} + + + /* Code */ ?> @@ -319,10 +253,10 @@ a:hover, a:focus { var inp = document.getElementById("pwdInput") if (inp.type == 'password') { inp.type = 'text'; - beh.innerHTML = ''; + beh.innerHTML = ''; } else { inp.type = 'password'; - beh.innerHTML = ''; + beh.innerHTML = ''; } }, setDomain: function(domain) { @@ -338,17 +272,17 @@ a:hover, a:focus {

Mail-Control v1.3


@@ -356,19 +290,19 @@ a:hover, a:focus { '.retAl('New Alias').'
'; - $out.= ''; + $out = '
New Alias
'; + $out.= '
'.retAl('Domain').':
'; $out.= ''; - $out.= ''; - $out.= ''; + $out.= ''; + $out.= ''; $out.= ''; + $out .= '" value="NS">'; $out.= '
Domain:
'.retAl('Source').':@'.retAl('Domain').'
'.retAl('Destination').':
Source:@Domain
Destination:
'; break; case 2: - $out = '
'.retAl('New Domain').'
'; - $out.= ''; - $out.= ''; + $out = '
New Domain'; + $out.= '
'.retAl('Name').':
'; + $out.= ''; $out.= '
Name:
'; break; case 3: - $sql = "SELECT id,name FROM " . $tbl_domains . ";"; + $sql = "SELECT id,domain FROM domains;"; $qry = query($sql); - $out = '
'.retAl('New User').'
'; - $out.= ''; + $out = '
New User'; + $out.= '
'.retAl('Domain').':
'; $out.= ''; - $out.= ''; - $out.= ''; - $out.= ''; + $out.= ''; + $out.= ''; + $out.= ''; $out.= '
Domain:
'.retAl('Username').':@Domain
'.retAl('Password').': '.retAl('show password').'
Username:@Domain
Password: show password
'; break; } switch($do) { case 1: - $thname = array(retAl('Action'),retAl('ID'),retAl('Source'),retAl('Domain'),retAl('Destination'),retAl('Enabled')); - $thback = array('','id','source','domain_id','destination','enabled'); - $out.= '
'.retAl('New Alias').'


'; + $thname = array('Action','ID','Source','Domain','Destination','Enabled'); + $thback = array('','alias_id','source','source_domain','destinations','enabled'); + $out.= '
New Alias


'; $out.=''; for ($a=0;$a'.$link.$thname[$a].$endlink.''; } $out.=''; - while($row = fetch($qry)) { + foreach(fetch($qry) as $row) { $i++; $rowcolor = ($i%2==0) ? 'rowcolor0' : 'rowcolor1'; - $out.=''; + $out.=''; } $out.='
EditDelete'.$row[0].''.$row[1].''.$row[2].''.$row[3].''.$row[4].'
'; + if ($row[0] > 0) $out.='EditDelete'; + $out.=''.$row[0].''.$row[1].''.$row[2].''.$row[3].''.$row[4].'
'; break; case 2: - $thname = array(retAl('Action'),retAl('ID'),retAl('Name')); - $thback = array('','id','name'); - $out.='
'.retAl('New Domain').'


'; + $thname = array('Action','ID','Name'); + $thback = array('','id','domain'); + $out.='
New Domain


'; $out.=''; for ($a=0;$a'.$link.$thname[$a].$endlink.''; } $out.=''; - while($row = fetch($qry)) { + foreach(fetch($qry) as $row) { $i++; $rowcolor = ($i%2==0) ? 'rowcolor0' : 'rowcolor1'; - $out.=''; + $out.=''; } $out.='
EditDelete'.$row[0].''.$row[1].'
EditDelete'.$row[0].''.$row[1].'
'; break; case 3: - $thname = array(retAl('Action'),retAl('ID'),retAl('Domain'),retAl('User')); - $thback = array("","id","domain_id","user"); - $out.='
'.retAl('New User').'


'; + $thname = array('Action','ID','User','Domain'); + $thback = array("","account_id","user","domain"); + $out.='
New User


'; $out.=''; for ($a=0;$a'.$link.$thname[$a].$endlink.''; } $out.=''; - while($row = fetch($qry)) { + foreach(fetch($qry) as $row) { $i++; $rowcolor = ($i%2==0) ? 'rowcolor0' : 'rowcolor1'; - $out.=''; + $out.=''; } $out.='
EditDelete'.$row[0].''.$row[1].''.$row[2].'
EditDelete'.$row[0].''.$row[1].''.$row[2].'
'; break; case 4: if($result == true) { - $out = '
'.retAl('Alias').' '.retAl('was added...').'
'; - $out .= '
'.retAl('Back').'
'; + $out = '
Alias was added...
'; + $out .= '
Back
'; $out .= ""; } else { - $out = '

'.retAl('ERROR adding Alias').'

'; - $out .= '
'.retAl('Back').'
'; + $out = '

ERROR adding Alias

'; + $out .= '
Back
'; } break; case 5: if($result == true) { - $out = '
'.retAl('Domain').' '.retAl('was added...').'
'; - $out .= '
'.retAl('Back').'
'; + $out = '
Domain was added...
'; + $out .= '
Back
'; $out .= ""; } else { - $out = '

'.retAl('ERROR adding Domain').'

'; - $out .= '
'.retAl('Back').'
'; + $out = '

ERROR adding Domain

'; + $out .= '
Back
'; } break; case 6: if($result == true) { - $out = '
'.retAl('User').' '.retAl('was added...').'
'; - $out .= '
'.retAl('Back').'
'; + $out = '
User was added...
'; + $out .= '
Back
'; $out .= ""; } else { - $out = '

'.retAl('ERROR adding User').'

'; - $out .= '
'.retAl('Back').'
'; + $out = '

ERROR adding User

'; + $out .= '
Back
'; } break; } @@ -503,39 +439,39 @@ switch($do) { switch($del) { case 1: if($ack == "") { - $out = '

'.retAl('Delete this alias?').'

'; - $out.= '
ǀ
'; - } else if($ack == retAl('Yes')) { - $out = '
'.retAl('Alias').' '.retAl('was deleted...').'
'.retAl('Back').'
'; + $out = '

Delete this alias?

'; + $out.= '
ǀ
'; + } else if($ack == 'Yes') { + $out = '
Alias was deleted...
Back
'; $out .= ""; } else { - $out = '
'.retAl('Back').'
'; + $out = '
Back
'; $out .= ""; } break; case 2: if($ack == "") { - $out = '

'.retAl('Delete this domain?').'

' . "\n"; - $out.= '
ǀ
'; - } else if($ack == retAl('Yes')) { - $out = '
'.retAl('Domain').' '.retAl('was deleted...').'
'.retAl('Back').'
'; + $out = '

Delete this domain?

' . "\n"; + $out.= '
ǀ
'; + } else if($ack == 'Yes') { + $out = '
Domain was deleted...
Back
'; $out .= ""; } else { - $out = '
'.retAl('Back').'
'; + $out = '
Back
'; $out .= ""; } break; case 3: if($ack == "") { - $out = '

'.retAl('Delete this user?').'

' . "\n"; - $out.= '
ǀ
'; - } else if($ack == retAl('Yes')) { - $out = '
'.retAl('User').' '.retAl('was deleted...').'
'.retAl('Back').'
'; + $out = '

Delete this user?

' . "\n"; + $out.= '
ǀ
'; + } else if($ack == 'Yes') { + $out = '
User was deleted...
Back
'; $out .= ""; } else { - $out = '
'.retAl('Back').'
'; + $out = '
Back
'; $out .= ""; } break; @@ -543,75 +479,76 @@ switch($del) { switch($chg) { case 1: - $sql = "SELECT id,name FROM " . $tbl_domains . ";"; + $sql = "SELECT id,domain FROM domains;"; $qry = query($sql); - $sql = "SELECT * FROM " . $tbl_aliases . " WHERE id=".$id.";"; + $sql = "SELECT id,source_username,source_domain,destination,enabled FROM aliases WHERE id=".$id.";"; $qry2 = query($sql); $details = fetch($qry2); if($ack == "") { - $out = '
'.retAl('Edit Alias').':
'; + $out = '
Edit Alias:'; $out.= ''; - $out.= ''; - $out.= ''; - $out.= ''; - $out.= ''; - $out.= '
'.retAl('Domain').':
Domain:
'.retAl('Source').':@Domain
'.retAl('Target').':
'.retAl('Enabled').':
'; - } else if($ack == retAl('Save')) { - $out = '
'.retAl('Alias').' '.('was changed...').'
'.retAl('Back').'
'; + $out.= 'Source:@Domain'; + $out.= 'Target:'; + $out.= 'Enabled:'; + $out.= '
'; + } else if($ack == 'Save') { + $out = '
Alias was changed...
Back
'; $out .= ""; } else { - $out = '
'.retAl('Back').'
'; + $out = '
Back
'; $out .= ""; } break; case 2: - $sql = "SELECT name FROM " . $tbl_domains . " WHERE id=".$id.";"; + $sql = "SELECT domain FROM domains WHERE id=".$id.";"; $qry = query($sql); if($ack == "") { $dom = fetch($qry); - $out = '
'.retAl('Edit Domain').'
'; + $out = '
Edit Domain'; $out.= ''; - $out.= ''; - $out.= ' -
'.retAl('Domain').':'; + $out.= '
Domain:'; $out.= '
'; - } else if($ack == retAl('Save')) { - $out = '
'.retAl('Domain').' '.('was changed...').'
'.retAl('Back').'
'; + $out.= ' +
'; + } else if($ack == 'Save') { + $out = '
Domain was changed...
Back
'; $out .= ""; } else { - $out = '
'.retAl('Back').'
'; + $out = '
Back
'; $out .= ""; } break; case 3: - $sql = "SELECT id,name FROM " . $tbl_domains . ";"; + $sql = "SELECT id,domain FROM domains;"; $qry = query($sql); - $sql = "SELECT * FROM " . $tbl_users . " WHERE id=".$id.";"; + $sql = "SELECT username,domain,enabled FROM accounts WHERE id=".$id.";"; $qry2 = query($sql); $details = fetch($qry2); + var_dump($details['domain']); if($ack == "") { - $out = '
'.retAl('Edit User').'
'; + $out = '
Edit User'; $out.= ''; - $out.= ''; - $out.= ''; - $out.= ''; - $out.= '
'.retAl('Domain').':
Domain:
'.retAl('Name').':@Domain
'.retAl('Password').': '.retAl('show password').'
'; - } else if($ack == retAl('Save')) { - $out = '
'.retAl('User').' '.('was changed...').'
'.retAl('Back').'
'; + $out.= 'Name:@Domain'; + $out.= 'Password: show password'; + $out.= '
'; + } else if($ack == 'Save') { + $out = '
User was changed...
Back
'; $out .= ""; } else { - $out = '
'.retAl('Back').'
'; + $out = '
Back
'; $out .= ""; } break;