49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/*! @file
 | 
						|
 | 
						|
    @id $Id$
 | 
						|
 | 
						|
    @see @ref apisend
 | 
						|
 | 
						|
    @page api
 | 
						|
 | 
						|
    @section apisend Send Message To Server
 | 
						|
 | 
						|
    API-call send.php
 | 
						|
 | 
						|
    Send a message to the server. Sever checks if user exists and has
 | 
						|
    a valid public key. More test could be added later.
 | 
						|
 | 
						|
    @param user The name of the user that send the message.
 | 
						|
 | 
						|
    @param msg The armored signed and encrypted message. There is a
 | 
						|
               limit of 100000 bytes for the message.
 | 
						|
 | 
						|
    @return
 | 
						|
      - success() if the message has been stored successfully
 | 
						|
      - error() in case of any error
 | 
						|
*/
 | 
						|
//       1         2         3         4         5         6         7         8
 | 
						|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
 | 
						|
try {
 | 
						|
  require_once("usertable.php");
 | 
						|
  $user = $db->real_escape_string($_REQUEST['user']);
 | 
						|
  $msg = $db->real_escape_string($_REQUEST['msg']);
 | 
						|
  if (strlen($_REQUEST['msg'])>100000) error("message is too long");
 | 
						|
  $q = $db->query("select pubkey from user where name='$user';");
 | 
						|
  if (!$q || $q->num_rows!=1) error("user not found on server");
 | 
						|
  $pubkey = gnupg_import($pgp, $q->fetch_row()[0]);
 | 
						|
  if (!$pubkey) error("wrong identity");
 | 
						|
  require_once("messagetable.php");
 | 
						|
  $q = $db->query("insert into message (user, msg) values ('$user', '$msg');");
 | 
						|
  if (!$q) {
 | 
						|
    error_log("Error storing message: ".$db->error);
 | 
						|
    error("storing message failed");
 | 
						|
  }
 | 
						|
  success("message stored");
 | 
						|
} catch (Exception $e) {
 | 
						|
  error_log("Error storing message: ".$e->message);
 | 
						|
  error("storing message failed");
 | 
						|
}
 | 
						|
 | 
						|
?>
 |