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
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; }
<?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 }