public static function get($key, $substituteEntities = array())
 {
     if (self::$me == null) {
         self::$me = new self();
     }
     if (is_int(strpos($key, '|'))) {
         $keys = explode('|', $key);
         $return = self::$me->{$keys}[0];
         if (count($keys) === 2) {
             $return = $return[$keys[1]];
         }
     } else {
         $return = self::$me->{$key};
     }
     if (count($substituteEntities) > 0) {
         $i = 1;
         foreach ($substituteEntities as $substitution) {
             if (strpos($return, ':var' . $i) === false) {
                 echo 'TexterError: Replacement ":var' . $i . '" not found in "' . $return . '".';
                 continue;
             }
             $return = str_replace(':var' . $i, $substitution, $return);
         }
     }
     return $return;
 }
 public static function log($logType, $user = false, $data1 = false)
 {
     $browser = new Browser();
     $text = '';
     $timestamp = time();
     if ($user !== false) {
         $userId = $user->get('id');
     } else {
         $userId = 0;
     }
     $data = '';
     switch ($logType) {
         case 3:
             foreach ($data1 as $key => $value) {
                 $data .= ' ' . $key . ': ' . $value . '|';
             }
             break;
         case 4:
             $data = 'Plattform: ' . $browser->getPlatform() . ' | Browser: ' . $browser->getBrowser() . ' | Version: ' . $browser->getVersion() . ' | UserAgent: ' . $browser->getUserAgent();
             break;
         default:
             break;
     }
     $text = Texter::get('log|' . $logType);
     database::Query('INSERT INTO log (`type`, `text`, `data`, `userId`, `timestamp`) VALUES (' . $logType . ', :var1, :var2, :var3, :var4);', array('var1' => $text, 'var2' => $data, 'var3' => $userId, 'var4' => $timestamp));
 }
 public function verifyPassword($mail, $password, $storelogin = 0)
 {
     $RS = database::Query('SELECT id, salt, password, status, is_admin FROM users WHERE mail=:var1', array('var1' => $mail), $stats);
     if ($stats == 0 || $RS[0]['is_admin'] == 0) {
         return Texter::get('user|accNotFound');
     }
     if ($RS[0]['status'] == 1) {
         if ($this->encryptPassword($password, $RS[0]['salt']) == $RS[0]['password']) {
             if ($storelogin == 1) {
                 self::setCookie($RS[0]['id'], $RS[0]['password']);
             }
             $_SESSION['beuser_id'] = $RS[0]['id'];
             $_SESSION['beuser'] = new beuser($RS[0]['id']);
             return true;
         } else {
             return Texter::get('user|accNotFound');
         }
     } else {
         return Texter::get('user|accNotActivated');
     }
 }
 public static function activate($code)
 {
     $RS = database::Query('SELECT id FROM users WHERE accesscode=:var1 AND status=0', array('var1' => $code), $stats);
     if ($stats == 1) {
         $user = new self($RS[0]['id']);
         $user->set('status', 1);
         $user->save();
         Logging::log(2, $user);
     } else {
         $user = new self();
         $user->errmsg = Texter::get('user|activationFail');
     }
     return $user;
 }
        }
        break;
    case 'sendNewPassword':
        $user = new user($_POST['values']['clientId']);
        $newPassword = $user->generateRandomPassword();
        $loginCredentials = $user->createPassword($newPassword);
        if ($loginCredentials['success'] === 1) {
            $result = mailer::sendNewPasswordMail($user, $newPassword);
            if ($result === true) {
                $user->set('salt', $loginCredentials['salt']);
                $user->set('password', $loginCredentials['password']);
                $user->save();
                echo json_encode(array('status' => 'correct', 'msg' => Texter::get('client|sendNewPassword')));
            } else {
                echo json_encode(array('status' => Texter::get('client|sendNewPasswordfail')));
            }
        }
        break;
    case 'deleteImage':
        $user = new User($_SESSION['user_id']);
        if ($user->deleteImage($_POST['values']['dataId']) === true) {
            echo json_encode(array('success' => 1, 'dataId' => $_POST['values']['dataId']));
        } else {
            echo json_encode(array('success' => 0, 'msg' => 'test'));
        }
        break;
    default:
        echo json_encode(array('errmsg' => Texter::get('system|unknownRequest', array($_POST['module']))));
        break;
}
//end switch
            if ($return['success'] === 1) {
                if (isset($_COOKIE['relo_backend']) === true) {
                    $this->user->verifyPassword($this->user->get('mail'), $_POST['values']['password_new1'], 1);
                } else {
                    $this->user->verifyPassword($this->user->get('mail'), $_POST['values']['password_new1'], 0);
                }
            } else {
                $errmsg = $return['errmsg'];
            }
        }
        if ($return['success'] === 0 || $errmsg !== false) {
            echo json_encode(array('success' => 0, 'errmsg' => $errmsg));
        } else {
            echo json_encode(array('success' => 1));
        }
        break;
    case 'makeAdmin':
        $user = new beuser($_POST['values']['clientId']);
        if ($user->isAdmin() === true) {
            $user->set('is_admin', 0);
        } else {
            $user->set('is_admin', 1);
        }
        $user->save();
        echo json_encode(array('txt' => Texter::get('client|makeAdmin|' . $user->get('is_admin'))));
        break;
    default:
        echo json_encode(array('errmsg' => 'Unknown request on module ' . $_POST['module']));
        break;
}
//end switch
Example #7
0
 public function testGettysburgTxt()
 {
     $texter = new Texter();
     $path_to_text = __DIR__ . '/gettysburg.txt';
     $sentence = file_get_contents($path_to_text);
     $results = $texter->analyze_text($sentence);
     $actual = $results['top'];
     $expected = array('that' => 13, 'the' => 11, 'we' => 10, 'to' => 8, 'here' => 8);
     $this->assertEquals($expected, $actual);
 }
 /**
  * Sends a new random password to a user
  *
  * @param object $user        The user object to send to.
  * @param string $newPassword The raw new password (use user->generateRandomPassword()).
  *
  * @return integer Returns number of sent mails (1 or 0)
  */
 public static function sendNewPasswordMail($user, $newPassword)
 {
     if (self::$_me === null) {
         self::$_me = new self();
     }
     $substituteEntities = array('newPassword' => $newPassword);
     self::$_me->set('subject', Texter::get('newPasswordMail|subject'));
     self::$_me->set('to', $user->get('mail'));
     self::$_me->set('body', self::$_me->processHTMLTemplate('newPassword.mail', $substituteEntities), 'text/html');
     self::$_me->send();
     if (self::$_me->result == 1) {
         Logging::log(101, $user);
     }
     return self::$_me->result;
 }
Example #9
0
<?php

require_once __DIR__ . '/class.texter.php';
require_once __DIR__ . '/helpers.texter.php';
$content = isset($argv[1]) ? @file_get_contents($argv[1]) : file_get_contents("php://stdin");
$content = trim($content);
if (empty($content)) {
    print_help_and_exit();
}
$texter = new Texter();
$results = $texter->analyze_text($content);
display_results($results);
            } else {
                $errmsg[] = $return['errmsg'];
            }
        }
        if ($return['success'] == 0 && count($errmsg) > 0) {
            echo json_encode(array('success' => 0, 'errmsg' => $errmsg));
        } else {
            echo json_encode(array('success' => 1));
        }
        break;
    case 'sendNewPassword':
        $user = new user($_POST['values']['clientId']);
        $newPassword = $user->generateRandomPassword();
        $loginCredentials = $user->createPassword($newPassword);
        if ($loginCredentials['success'] === 1) {
            $result = mailer::sendNewPasswordMail($user, $newPassword);
            if ($result === true) {
                $user->set('salt', $loginCredentials['salt']);
                $user->set('password', $loginCredentials['password']);
                $user->save();
                echo json_encode(array('status' => 'correct', 'msg' => Texter::get('client|sendNewPassword')));
            } else {
                echo json_encode(array('status' => Texter::get('client|sendNewPasswordfail')));
            }
        }
        break;
    default:
        echo json_encode(array('errmsg' => 'Unknown request on module ' . $_POST['module']));
        break;
}
//end switch
 function __construct()
 {
     switch ($_POST['action']) {
         case 'beprofilepic':
             $target_dir = '../data/img/_users/';
             break;
         case 'userimage':
         case 'profilepic':
         default:
             $target_dir = 'data/img/_users/';
             break;
     }
     $imageFileType = pathinfo($_FILES['file']['name'][0], PATHINFO_EXTENSION);
     switch ($_POST['action']) {
         case 'userimage':
             $uniqueFilename = $this->getRandomUniqueFilename($imageFileType, $_SESSION['user_id']);
             break;
         case 'profilepic':
             $uniqueFilename = $this->getRandomUniqueFilename($imageFileType, $_SESSION['user_id']);
             break;
         case 'beprofilepic':
             $uniqueFilename = $this->getRandomUniqueFilename($imageFileType, $_SESSION['beuser_id']);
             break;
     }
     $filename = $uniqueFilename . '.' . $imageFileType;
     $target_file = $target_dir . $filename;
     $uploadOk = 1;
     // Check if image file is a actual image or fake image
     $check = getimagesize($_FILES['file']['tmp_name'][0]);
     if ($check !== false) {
         $uploadOk = 1;
     } else {
         $errormsg = Texter::get('upload|wrongFiletype');
         $uploadOk = 0;
     }
     // Check if file already exists
     if (file_exists($target_file)) {
         $errormsg = 'Sorry, file already exists.';
         $uploadOk = 0;
     }
     // Check file size
     if ($_FILES['file']['size'][0] > 5000000) {
         $errormsg = Texter::get('upload|fileTooBig');
         $uploadOk = 0;
     }
     // Allow certain file formats
     if ($imageFileType != 'jpg' && $imageFileType != 'png' && $imageFileType != 'jpeg' && $imageFileType != 'gif') {
         $errormsg = Texter::get('upload|wrongFiletype');
         $uploadOk = 0;
     }
     // Check if $uploadOk is set to 0 by an error
     if ($uploadOk == 0) {
         echo json_encode(array('status' => 0, 'error' => $errormsg));
         // if everything is ok, try to upload file
     } else {
         if (move_uploaded_file($_FILES['file']['tmp_name'][0], $target_file)) {
             $uploadtime = date('U');
             $imageid = null;
             switch ($_POST['action']) {
                 case 'userimage':
                     database::Query('INSERT INTO files SET filename=:var1, user_id=:var2, comment=:var3, `date`=:var4', array('var1' => $filename, 'var2' => $_SESSION['user_id'], 'var3' => '', 'var4' => $uploadtime), $imageid);
                     Logging::log(5, $_SESSION['user']);
                     break;
                 case 'profilepic':
                     // Delete old profilepic
                     $RS = database::Query('SELECT profilepic FROM users WHERE id =' . $_SESSION['user_id'] . ';', array());
                     if ($RS[0]['profilepic'] != '' && file_exists($target_dir . $RS[0]['profilepic']) && strpos($RS[0]['profilepic'], '_default') === false) {
                         unlink($target_dir . $RS[0]['profilepic']);
                     }
                     database::Query('UPDATE users SET profilepic=:var1 WHERE id=' . $_SESSION['user_id'] . ';', array('var1' => $filename));
                     Logging::log(6, $_SESSION['user']);
                     break;
                 case 'beprofilepic':
                     $user = new Beuser($_SESSION['beuser_id']);
                     // Delete old profilepic
                     if (file_exists($target_dir . $user->get('profilepic')) && strpos($user->get('profilepic'), '_default') === false) {
                         unlink($target_dir . $user->get('profilepic'));
                         if (file_exists($target_dir . '_thumbs/' . $user->get('profilepic'))) {
                             unlink($target_dir . '_thumbs/' . $user->get('profilepic'));
                         }
                     }
                     $user->set('profilepic', $filename);
                     $user->createThumbnail();
                     $user->save();
                     break;
             }
             //end switch
             echo json_encode(array('status' => 1, 'file' => array('id' => $imageid, 'filename' => $target_file, 'date' => date('d.m.Y H:i', $uploadtime))));
         } else {
             echo json_encode(array('status' => 0, 'error' => 'Fehler beim Upload'));
         }
         //end if
     }
     //end if
 }