non working experimental status
This commit is contained in:
		@@ -24,12 +24,14 @@
 | 
			
		||||
function login($user, $pubkey) {
 | 
			
		||||
  try {
 | 
			
		||||
    require_once("opendb.php");
 | 
			
		||||
    if (!$db) error("database access failed");
 | 
			
		||||
    if ($user=="safechat") error("username safechat is reserved for server");
 | 
			
		||||
    $verify = gnupg_import($pgp, $pubkey);
 | 
			
		||||
    if (!$verify) error("wrong identity");
 | 
			
		||||
    //$verify = gnupg_import($pgp, $pubkey);
 | 
			
		||||
    //if (!$verify) error("wrong identity");
 | 
			
		||||
    $user = $db->real_escape_string($user);
 | 
			
		||||
    $pubkey = $db->real_escape_string($pubkey);
 | 
			
		||||
    $q = $db->query("select * from user where name='$user' and pubkey='$pubkey';");
 | 
			
		||||
    if (!$q) error("database query failed");
 | 
			
		||||
    if ($q->num_rows==1) {
 | 
			
		||||
      success("user $user found on server");
 | 
			
		||||
    } elseif ($q->num_rows==0) {
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@
 | 
			
		||||
 | 
			
		||||
mysqli_report(MYSQLI_REPORT_STRICT);
 | 
			
		||||
require_once("functions.php");
 | 
			
		||||
/*
 | 
			
		||||
try {
 | 
			
		||||
  if (!isset($pgp)) {
 | 
			
		||||
    $pgp = gnupg_init();
 | 
			
		||||
@@ -19,17 +20,23 @@ try {
 | 
			
		||||
} catch (Exception $e) {
 | 
			
		||||
  error('cannot start pgp on server');
 | 
			
		||||
}
 | 
			
		||||
    */
 | 
			
		||||
try {
 | 
			
		||||
  if (!isset($db)) {
 | 
			
		||||
    $db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]);
 | 
			
		||||
    if (!$db) error("database connection failed on server");
 | 
			
		||||
    $db->query("create database if not exists safechat;");
 | 
			
		||||
    $db->select_db("safechat");
 | 
			
		||||
    if (!$db) error("cannot create database for safechat");
 | 
			
		||||
    $db->query(file_get_contents("schema.sql"));
 | 
			
		||||
    if (!$db) error("cannot create database tables");
 | 
			
		||||
  $db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]);
 | 
			
		||||
  if (!$db) error("database connection failed on server");
 | 
			
		||||
  $db->query("create database if not exists safechat;");
 | 
			
		||||
  if (!$db) error("cannot create database");
 | 
			
		||||
  $db->select_db("safechat");
 | 
			
		||||
  if (!$db) error("cannot select database");
 | 
			
		||||
  $query = file_get_contents("schema.sql");
 | 
			
		||||
  if (!$query) error("cannot load database schema");
 | 
			
		||||
  foreach (split(";\n", $query) as $create) {
 | 
			
		||||
    if ($create) {
 | 
			
		||||
      $db->query($create);
 | 
			
		||||
      if (!$db) error("cannot create database tables");
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
} catch (Exception $e) {
 | 
			
		||||
  error('database error on server');
 | 
			
		||||
  error('database error on server: '+$e->getMessage());
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
@@ -294,7 +294,8 @@ function createkeypair(user, pwd) {
 | 
			
		||||
        localStorage["privKey"] = keyPair.privateKeyArmored;
 | 
			
		||||
        login();
 | 
			
		||||
    }).catch(function(e) {
 | 
			
		||||
        error(e);
 | 
			
		||||
        console.log(e.stack);
 | 
			
		||||
        error("generating key pairs failed");
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -668,20 +669,37 @@ function newuser() {
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Check if local storage is available
 | 
			
		||||
function checkLocalStorage() {
 | 
			
		||||
    var test = 'test';
 | 
			
		||||
    try {
 | 
			
		||||
        localStorage.setItem(test, test);
 | 
			
		||||
        localStorage.removeItem(test);
 | 
			
		||||
        return true;
 | 
			
		||||
    } catch(e) {
 | 
			
		||||
        status("<p>No access to local storage. Please allow "+window.location.hostname
 | 
			
		||||
               +" to access localhost, i.e. do not block cookies.<p>");
 | 
			
		||||
        error("local storage not available");
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Initial Function: Startup
 | 
			
		||||
/** Decide whether to login or to create a new user */
 | 
			
		||||
function start() {
 | 
			
		||||
    $("#menu").hide();
 | 
			
		||||
    try {
 | 
			
		||||
        status("Starting up ...");
 | 
			
		||||
        if (!userid()) {
 | 
			
		||||
            newuser();
 | 
			
		||||
        } else {
 | 
			
		||||
            login();
 | 
			
		||||
    if (checkLocalStorage())
 | 
			
		||||
        try {
 | 
			
		||||
            status("Starting up ...");
 | 
			
		||||
            if (!userid()) {
 | 
			
		||||
                newuser();
 | 
			
		||||
            } else {
 | 
			
		||||
                login();
 | 
			
		||||
            }
 | 
			
		||||
        } catch (m) {
 | 
			
		||||
            console.log(m.stack);
 | 
			
		||||
            error(m);
 | 
			
		||||
        }
 | 
			
		||||
    } catch (m) {
 | 
			
		||||
        error(m);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// On Load, Call @ref start
 | 
			
		||||
 
 | 
			
		||||
@@ -29,8 +29,10 @@ function send($user, $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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user