This will delete your database and all data asociated with it. It can't be un-done. Are you sure?

No, don't delete.

This will delete your onion domain .onion and all data asociated with it. It can't be un-done. Are you sure?

No, don't delete.

$data[message]

"; $ok = false; } else { $check=$db->prepare('SELECT null FROM onions WHERE onion=?;'); $check->execute([$onion]); if($check->fetch(PDO::FETCH_NUM)){ $msg = '

Error onion already exists.

'; $ok = false; } } }else{ $onion_version = 3; if(isset($_REQUEST['onion_type']) && in_array($_REQUEST['onion_type'], [2, 3])){ $onion_version = $_REQUEST['onion_type']; } $check=$db->prepare('SELECT null FROM onions WHERE onion=?;'); do{ $data = generate_new_onion($onion_version); $priv_key = $data['priv_key']; $onion = $data['onion']; $onion_version = $data['version']; $check->execute([$onion]); }while($check->fetch(PDO::FETCH_NUM)); } $priv_key=trim(str_replace("\r", '', $priv_key)); $stmt = $db->prepare('SELECT COUNT(*) FROM onions WHERE user_id = ?;'); $stmt->execute([$user['id']]); $count = $stmt->fetch(PDO::FETCH_NUM); if($count[0]>=MAX_NUM_USER_ONIONS) { $ok = false; } if($ok){ add_user_onion($user['id'], $onion, $priv_key, $onion_version); } } if(isset($_POST['action']) && $_POST['action']==='del_onion_2' && !empty($_POST['onion'])){ if($error=check_csrf_error()){ die($error); } del_user_onion($user['id'], $_POST['onion']); } if(isset($_POST['action']) && $_POST['action']==='add_domain' && !empty($_POST['domain'])){ if($error=check_csrf_error()){ die($error); } $error = add_user_domain($user['id'], $_POST['domain']); if(!empty($error)){ $msg = "

$error

"; } } if(isset($_POST['action']) && $_POST['action']==='del_domain' && !empty($_POST['domain'])){ if($error=check_csrf_error()){ die($error); } print_header('Delete domain'); ?>

This will delete your domain and all data asociated with it. It can't be un-done. Are you sure?

No, don't delete.

prepare('SELECT onions.version, onions.instance FROM onions INNER JOIN users ON (users.id=onions.user_id) WHERE onions.onion = ? AND users.id = ? AND onions.enabled IN (0, 1);'); $stmt->execute([$_REQUEST['onion'], $user['id']]); if($onion=$stmt->fetch(PDO::FETCH_ASSOC)){ $stmt=$db->prepare('UPDATE onions SET enabled = ?, enable_smtp = ?, num_intros = ?, max_streams = ? WHERE onion = ?;'); $enabled = isset($_REQUEST['enabled']) ? 1 : 0; $enable_smtp = isset($_REQUEST['enable_smtp']) ? 1 : 0; $num_intros = intval($_REQUEST['num_intros']); if($num_intros<3){ $num_intros = 3; }elseif($onion['version']==2 && $num_intros>10){ $num_intros = 10; }elseif($num_intros>20){ $num_intros = 20; } $max_streams = intval($_REQUEST['max_streams']); if($max_streams<0){ $max_streams = 0; }elseif($max_streams>65535){ $max_streams = 65535; } $stmt->execute([$enabled, $enable_smtp, $num_intros, $max_streams, $_REQUEST['onion']]); enqueue_instance_reload($onion['instance']); } } if(isset($_REQUEST['action']) && isset($_POST['domain']) && $_POST['action']==='edit_domain'){ if($error=check_csrf_error()){ die($error); } $stmt=$db->prepare('SELECT null FROM domains WHERE domain = ? AND user_id = ? AND enabled IN (0, 1);'); $stmt->execute([$_POST['domain'], $user['id']]); if($onion=$stmt->fetch(PDO::FETCH_NUM)){ $stmt=$db->prepare('UPDATE domains SET enabled = ? WHERE domain = ?;'); $enabled = isset($_POST['enabled']) ? 1 : 0; $stmt->execute([$enabled, $_POST['domain']]); enqueue_instance_reload(); } } print_header('Dashboard', '#custom_onion:not(checked)+#private_key{display:none;}#custom_onion:checked+#private_key{display:block;}td{padding:5px}meter{width:200px}'); dashboard_menu($user, 'home.php'); if(!empty($msg)){ echo $msg; } echo "

Enter system account password to check your $user[system_account]@" . ADDRESS . " mail:

"; echo '

Onion domains

'; echo ''; echo ''; $stmt=$db->prepare('SELECT onion, private_key, enabled, enable_smtp, num_intros, max_streams FROM onions WHERE user_id = ?;'); $stmt->execute([$user['id']]); $count_onions = 0; while($onion=$stmt->fetch(PDO::FETCH_ASSOC)){ ++$count_onions; echo "'; echo ''; echo ''; echo ''; if(in_array($onion['enabled'], [0, 1])){ echo ''; }else{ echo ''; } echo ''; } if($count_onions"; echo ''; } echo '
OnionPrivate keyEnabledSMTP enabledNr. of introsMax streams per rend circuitAction
$onion[onion].onion"; if(isset($_REQUEST['show_priv'])){ echo "
$onion[private_key]
"; }else{ echo 'Show private key'; } echo '
'; echo 'Unavailable
Add additional hidden service:
'; echo ''; echo ''; echo '
'; if(MAX_NUM_USER_DOMAINS>0){ echo '

Clearnet domains

'; echo ''; echo ''; $stmt=$db->prepare('SELECT domain, enabled FROM domains WHERE user_id = ?;'); $stmt->execute([$user['id']]); $count_domains = 0; while($domain=$stmt->fetch(PDO::FETCH_ASSOC)){ ++$count_domains; echo ""; echo ''; if(in_array($domain['enabled'], [0, 1])){ echo ''; }else{ echo ''; } echo ''; } if($count_domains"; echo ''; } echo '
DomainEnabledAction
$domain[domain]'; echo 'Unavailable
Add additional domain:
'; echo ''; echo '
'; echo '

To enable your clearnet domain, edit your DNS settings and enter 116.202.17.147 as your A record and 2a01:4f8:c010:d56::1 as your AAAA record. Once you have modified your DNS settings, contact me to configure the SSL certificate. You may also use any subdomain of danwin1210.me, like yoursite.danwin1210.me

'; } echo '

MySQL Database

'; echo ''; echo ''; $stmt=$db->prepare('SELECT mysql_database FROM mysql_databases WHERE user_id = ?;'); $stmt->execute([$user['id']]); $count_dbs = 0; while($mysql=$stmt->fetch(PDO::FETCH_ASSOC)){ ++$count_dbs; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
DatabaseHostUserAction
'.htmlspecialchars($mysql['mysql_database']).'localhost'.htmlspecialchars($user['mysql_user']).'
'; if($count_dbs

'; } ?>

Change MySQL password

You can use PHPMyAdmin and Adminer for web based database administration.

System Account

$tmp){ echo ""; } ?>
UsernameHostFTP PortSFTP PortPOP3 PortIMAP PortSMTP port
$user[system_account]$server$tmp[ftp]$tmp[sftp]$tmp[pop3]$tmp[imap]$tmp[smtp]

Change system account password

You can use the FileManager for web based file management.

prepare('SELECT quota_size, quota_size_used, quota_files, quota_files_used FROM disk_quota WHERE user_id = ?;'); $stmt->execute([$user['id']]); $quota = $stmt->fetch(PDO::FETCH_ASSOC); $quota_usage = $quota['quota_size_used'] / $quota['quota_size']; $quota_files_usage = $quota['quota_files_used'] / $quota['quota_files']; $usage_text = bytes_to_human_readable($quota['quota_size_used'] * 1024) . ' of ' . bytes_to_human_readable($quota['quota_size'] * 1024) . ' - ' . round($quota_usage * 100, 2).'%'; $usage_files_text = "$quota[quota_files_used] of $quota[quota_files] - " . round($quota_files_usage * 100, 2).'%'; ?>

Your disk usage: - (updated hourly) Upgrade' : ''; ?>

Your file number usage: - (updated hourly) Upgrade' : ''; ?>

Logs

Dateaccess.logerror.log
Todayaccess.logerror.log
Yesterdayaccess.logerror.log