turt2live

Untitled

Jul 25th, 2012
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.43 KB | None | 0 0
  1. <?php
  2. // includes
  3. require_once "includes/constants.inc.php";
  4. require_once XMAIL_CONF_PATH;
  5. require_once "includes/misc.inc.php";
  6. require_once "includes/keys.inc.php";
  7.  
  8. // You will need to change these values, most likely
  9. mysql_connect($config["mysql.server"], $config["mysql.username"], $config["mysql.password"]) or die(mysql_error());
  10. mysql_select_db($config["mysql.database"]) or die(mysql_error());
  11.  
  12. $mode = clean($_POST['mode']);
  13. $key = clean($_POST['apikey']);
  14. $ip = $_SERVER['REMOTE_ADDR'];
  15. $version = clean($_POST['version']);
  16. $now = time();
  17. if(!valid($mode)){
  18.     echo json_encode(array("message" => "Invalid Mode", "status" => "ERROR"));
  19. }else{ 
  20.     if($mode == "IMPORT_KEY"){
  21.         $key = sha1("import".time());
  22.         mysql_query("INSERT INTO `import_keys` (`key`, `ip`) VALUES ('$key', '$ip')") or die(mysql_error());
  23.         die(json_encode(array("message" => $key, "status" => "OK")));
  24.     }
  25.     if($mode == "SEND"){
  26.         $pid = clean($_POST['pid']);
  27.         $uid = clean($_POST['uid']);
  28.         $ident = clean($_POST['ident']);
  29.         $to = clean($_POST['to']);
  30.         $from = clean($_POST['from']);
  31.         $message = clean($_POST['message']);
  32.         $attachments = "";
  33.         // Check API key
  34.         check_key($ip, $mode, $key, $from);
  35.         if(valid($pid) && valid($uid) && valid($ident) && valid($to) && valid($from) && valid($message)){
  36.             if(userExists($to)){
  37.                 if($ident == "S"){
  38.                     mysql_query("INSERT INTO `mail` (`to`, `from`, `message`, `unread`, `complex`, `sent`) VALUES ('$to', '$from', '$message', '1', '0', '$now')") or die(mysql_error());
  39.                     echo json_encode(array("message" => "Message sent!", "status" => "OK"));
  40.                 }else if($ident == "C"){
  41.                     $message = str_replace("&amp;", "&", $message);
  42.                     $parts = explode(";", $message);
  43.                     $message = $parts[0];
  44.                     $attachments = "";
  45.                     for($i=1;$i<count($parts);$i++){
  46.                         $attachments .= $parts[$i].";";
  47.                     }
  48.                     mysql_query("INSERT INTO `mail` (`to`, `from`, `message`, `unread`, `complex`, `attachments`, `sent`) VALUES ('$to', '$from', '$message', '1', '1', '$attachments', '$now')") or die(mysql_error());
  49.                     echo json_encode(array("message" => "Message sent!", "status" => "OK"));
  50.                 }else{
  51.                     echo json_encode(array("message" => "Unknown ident", "status" => "ERROR"));
  52.                 }
  53.             }else{
  54.                 echo json_encode(array("message" => "User does not exist", "status" => "ERROR", "missingUsername" => $to));
  55.             }
  56.         }else{
  57.             echo json_encode(array("message" => "Unknown arguments", "status" => "ERROR", "mode" => $mode));
  58.         }
  59.     }else if($mode == "MARK"){
  60.         $read = clean($_POST['read']);
  61.         $pid = clean($_POST['pid']);
  62.         $uid = clean($_POST['uid']);
  63.         $from = clean($_POST['username']);
  64.         // Check API key
  65.         check_key($ip, $mode, $key, $from);
  66.         if(valid($read) && valid($pid) && valid($uid)){
  67.             // Read is used as 'unread', so inverse
  68.             if($read == true){
  69.                 $read = 0;
  70.             }else{
  71.                 $read = 1;
  72.             }
  73.             mysql_query("UPDATE mail SET unread='$read' WHERE id='$pid' LIMIT 1") or die(mysql_error());
  74.             echo json_encode(array("message" => "Updated Message", "status" => "OK"));
  75.         }else{
  76.             echo json_encode(array("message" => "Unknown arguments", "status" => "ERROR", "mode" => $mode));
  77.         }
  78.     }else if($mode == "REGISTER"){
  79.         $username = clean($_POST['username']);
  80.         $password = clean($_POST['password']); // Encoded by plugin
  81.         if(valid($username) && valid($password)){
  82.             $query = mysql_query("SELECT id FROM users WHERE username='$username'") or die(mysql_error());
  83.             if(mysql_num_rows($query)==1){
  84.                 echo json_encode(array("message" => "Username in use", "status" => "ERROR"));
  85.             }else{
  86.                 mysql_query("INSERT INTO users (username, password, loggedin, lastlogin) VALUES ('$username', '$password', '1', '$now')") or die(mysql_error());
  87.                 $key = get_key($ip, $mode, $username);
  88.                 echo json_encode(array("message" => "User registered", "status" => "OK", "username" => $username, "date" => $now, "loggedin" => true, "lastlogin" => $now, "apikey" => $key));
  89.             }
  90.         }else{
  91.             echo json_encode(array("message" => "Unknown arguments", "status" => "ERROR", "mode" => $mode));
  92.         }
  93.     }else if($mode == "LOGIN"){
  94.         $username = clean($_POST['username']);
  95.         $password = clean($_POST['password']); // Encoded by plugin
  96.         if(valid($username) && valid($password)){
  97.             $query = mysql_query("SELECT id,lastlogin FROM users WHERE username='$username' AND password='$password'") or die(mysql_error());
  98.             if(mysql_num_rows($query)==1){
  99.                 $last = mysql_result($query, 0, "lastlogin");
  100.                 mysql_query("UPDATE users SET loggedin='1', lastlogin='$now' WHERE username='$username' LIMIT 1") or die(mysql_error());
  101.                 $key = get_key($ip, $mode, $username);
  102.                 echo json_encode(array("message" => "Logged in", "status" => "OK", "username" => $username, "loggedin" => true, "date" => $now, "lastlogin" => $last, "apikey" => $key));
  103.             }else{
  104.                 echo json_encode(array("message" => "Incorrect username or password", "status" => "ERROR", "username" => $username, "loggedin" => false));
  105.             }
  106.         }else{
  107.             echo json_encode(array("message" => "Unknown arguments", "status" => "ERROR", "mode" => $mode));
  108.         }
  109.     }else if($mode == "LOGOUT"){
  110.         $username = clean($_POST['username']);
  111.         // Check API key
  112.         check_key($ip, $mode, $key, $username);
  113.         if(valid($username)){
  114.             mysql_query("UPDATE users SET loggedin='0' WHERE username='$username' LIMIT 1") or die(mysql_error());
  115.             destroy_key($ip, $mode, $username);
  116.             echo json_encode(array("message" => "Logged out", "status" => "OK", "username" => $username));
  117.         }else{
  118.             echo json_encode(array("message" => "Unknown arguments", "status" => "ERROR", "mode" => $mode));
  119.         }
  120.     }else if($mode == "CHECK_LOGIN"){
  121.         $username = clean($_POST['username']);
  122.         // Check API key
  123.         check_key($ip, $mode, $key, $username);
  124.         if(strpos($username, 'CONSOLE@') !== false){
  125.             die(json_encode(array("message" => "Logged in", "status" => "OK", "username" => $username, "loggedin" => true, "date" => $now, "lastlogin" => $now, "apikey" => null)));
  126.         }
  127.         if(valid($username)){
  128.             $query = mysql_query("SELECT id,lastlogin FROM users WHERE username='$username' AND loggedin='1'") or die(mysql_error());
  129.             if(mysql_num_rows($query)==1){
  130.                 $last = mysql_result($query, 0, "lastlogin");
  131.                 mysql_query("UPDATE users SET loggedin='1', lastlogin='$now' WHERE username='$username' LIMIT 1") or die(mysql_error());
  132.                 $key = get_key($ip, $mode, $username);
  133.                 echo json_encode(array("message" => "Logged in", "status" => "OK", "username" => $username, "loggedin" => true, "date" => $now, "lastlogin" => $last, "apikey" => $key));
  134.             }else{
  135.                 echo json_encode(array("message" => "Incorrect username or password", "status" => "ERROR", "username" => $username, "loggedin" => false));
  136.             }
  137.         }else{
  138.             echo json_encode(array("message" => "Unknown arguments", "status" => "ERROR", "mode" => $mode));
  139.         }
  140.     }else if($mode == "INBOX"){
  141.         $username = clean($_POST['username']);
  142.         // Check API key
  143.         check_key($ip, $mode, $key, $username);
  144.         if(valid($username)){
  145.             $query = mysql_query("SELECT id FROM users WHERE username='$username' AND loggedin='1'") or die(mysql_error());
  146.             if(mysql_num_rows($query)==1 || strpos($username, 'CONSOLE@') !== false){
  147.                 $query = mysql_query("SELECT * FROM `mail` WHERE `to`='$username' AND `unread`='1'") or die(mysql_error());
  148.                 if(mysql_num_rows($query)>0){
  149.                     echo json_encode(array("message" => "inbox", "status" => "OK", "username" => $username, "unread" => mysql_num_rows($query)));
  150.                     while($array = mysql_fetch_array($query)){
  151.                         $to = $array['to'];
  152.                         $from = $array['from'];
  153.                         $message = $array['message'];
  154.                         $attachments = $array['attachments'];
  155.                         $complex = $array['complex'];
  156.                         $id = $array['id'];
  157.                        
  158.                         if($complex == 1){
  159.                             $complex = true;
  160.                         }else{
  161.                             $complex = false;
  162.                         }
  163.                        
  164.                         $mailMess = array();
  165.                         $mailMess["id"] = $id;
  166.                         $mailMess["to"] = $to;
  167.                         $mailMess["from"] = $from;
  168.                         $mailMess["message"] = $message;
  169.                         $mailMess["complex"] = $complex;
  170.                         $mailMess["attachments"] = $attachments;
  171.                         echo "\n".json_encode($mailMess);
  172.                     }
  173.                 }else{
  174.                     echo json_encode(array("message" => "no mail", "status" => "OK"));
  175.                 }
  176.             }else{
  177.                 echo json_encode(array("message" => "Incorrect username or password", "status" => "ERROR", "username" => $username, "loggedin" => false));
  178.             }
  179.         }else{
  180.             echo json_encode(array("message" => "Unknown arguments", "status" => "ERROR", "mode" => $mode));
  181.         }
  182.     }else{
  183.         echo json_encode(array("message" => "Invalid Mode", "status" => "ERROR"));
  184.     }
  185. }
  186. ?>
Advertisement
Add Comment
Please, Sign In to add comment