48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/*! @file
 | 
						|
 | 
						|
    @id $Id$
 | 
						|
*/
 | 
						|
//       1         2         3         4         5         6         7         8
 | 
						|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
 | 
						|
 | 
						|
/// Send a message to the server
 | 
						|
/** Server 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
 | 
						|
 | 
						|
    @api Send Message to Server
 | 
						|
*/
 | 
						|
function send($user, $msg) {
 | 
						|
  try {
 | 
						|
    require_once("opendb.php");
 | 
						|
    $user = $db->real_escape_string($user);
 | 
						|
    $msg = $db->real_escape_string($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");
 | 
						|
        */
 | 
						|
    $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");
 | 
						|
  }
 | 
						|
}
 | 
						|
send($_REQUEST['user'], $_REQUEST['msg']);
 | 
						|
?>
 |