HEX
Server: Apache/2.4.18 (Ubuntu)
System: Linux ubuntu 7.0.5-x86_64-linode173 #1 SMP PREEMPT_DYNAMIC Fri May 8 10:12:05 EDT 2026 x86_64
User: root (0)
PHP: 7.2.28-1+ubuntu16.04.1+deb.sury.org+1
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: //opt/code/static/api/admin/save_user.php
<?php 
$dir = dirname(__FILE__);
include_once($dir.'/../util.php');
include_once($dir.'/../db.php');
include_once($dir.'/../token.php');

if($_SESSION['uid'] != 1) error('Not enough permissions');
$data = json_decode(file_get_contents('php://input'),TRUE,100,JSON_PARTIAL_OUTPUT_ON_ERROR);
$db = &$_SERVER['DB'];
if($_REQUEST['id']!=0)
{
  $stm = $db->prepare('UPDATE account SET email = ?, '.($data['secret']!='' ? 'secret = ?,' : '').' full_name = ? WHERE id = '.$_REQUEST['id']);
  $db->bind($stm,$data['secret']!='' ? Array($data['email'],$data['secret'],$data['full_name']) : Array($data['email'],$data['full_name']));
  $db->exec($stm,FALSE);
  $err = $db->errno();
  if($err==1062) error("Duplicate email");
  elseif($err) trigger_error($db->errno().': '.$db->errmsg(),E_USER_WARNING);
  else echo '{"saved":true}';
}
else
{
  $stm = $db->prepare('INSERT INTO account(email,secret,full_name) VALUES(?,?,?)');
  $db->bind($stm,Array($data['email'],$data['secret'],$data['full_name']));
  $db->exec($stm,FALSE);
  $err = $db->errno();
  if($err==1062) error("Duplicate email");
  elseif($err) trigger_error($db->errno().': '.$db->errmsg(),E_USER_WARNING);
  else
  {
    $data['id'] = $db->last_id();
    echo json_encode($data);
  }
}

?>